Чтобы удалить Shift xlUp или Down из кода - PullRequest
0 голосов
/ 21 июня 2020

Этот код был найден в одной из цепочек. Все, что связано с кодом, было полезно, кроме того, что после выполнения кода данные сдвигаются вверх. Я хочу, чтобы эта строка, то есть от A до F, стала пустой, а данные не смещались вверх. Пытался удалить Shift: = xlShiftUp из кода, но данные по-прежнему смещаются вверх в исходном файле (Sheet1). код:

Private Sub CommandButton1_Click () Dim Source As Range, Target As Range

With Worksheets("Sheet1")
    Set Source = .Range("A3", .Range("A" & .Rows.Count).End(xlUp))
End With

Set Target = Source.Find(What:=DCNameTextBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)
    
If Not Target Is Nothing Then
    'Reference the next enmpty row on Sheet2
    With Worksheets("Sheet2")
        With .Range("A" & .Rows.Count).End(xlUp).Offset(1)
            '.Range("A1:F1") is relative to the row of it's parent range
            .Range("A1:F1").Value = Target.Range("A1:F1").Value
            .Range("H1:J1").Value = Array(DCDateTextBox.Value, DispoTextBox.Value, ReasonTextBox.Value)

            Set Source = .Range("A3", .Range("A" & .Rows.Count).End(xlUp))
        End With
    End With
    Target.Range("A1:F1").Delete Shift:=xlShiftUp
    
    MsgBox "Client has been moved to Discharge list."
Else
    MsgBox "Client not found", vbInformation, "No Data"
End If

Range("A3").Select

End Sub

1 Ответ

0 голосов
/ 21 июня 2020

Не уверен, что я полностью понимаю, но если вы хотите очистить содержимое A1: F1, сделайте

Target.Range("A1:F1").ClearContents

вместо

Target.Range("A1:F1").Delete Shift:=xlShiftUp

, если нет ничего F1, тогда вы можете сделать

Target.Range("A1:F1").Delete Shift:=xlToLeft
...