У меня есть оператор If, который выполняется при изменении ячейки. Эта часть работает нормально. Однако, когда он запускает макрос, по какой-то причине он добавляет около 40 дополнительных строк. Я использовал точку останова и обнаружил, что строки добавляются после специальной вставки. Может ли кто-нибудь сказать мне, почему?Запуск макроса при изменении адреса цели
Заранее спасибо.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AG$4" Then
Call CapEx_Copy_Paste_Delete
End If
End Sub
Sub CapEx_Copy_Paste_Delete()
'
' CapEx_Copy_Paste_Delete Macro
'
'
Rows("11:11").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B4:AG4").Select
Selection.Copy
Range("B11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AG4").Select
Selection.ClearContents
Range("B4:E4").Select
Selection.ClearContents
Range("H4:I4").Select
Selection.ClearContents
Range("L4:M4").Select
Selection.ClearContents
Range("P4:Q4").Select
Selection.ClearContents
Range("T4:U4").Select
Selection.ClearContents
Range("X4:Y4").Select
Selection.ClearContents
Range("Z4").Select
Selection.ClearContents
Range("AA4").Select
Selection.ClearContents
Range("AC4").Select
Selection.ClearContents
Range("AD4").Select
Selection.ClearContents
Range("B4").Select
End Sub
Unrelated , но не используйте 'Select' для такого рода вещей. Просто позвоните «Range (« AG4 »). ClearContents'. – jsheeran
Также не связанный, но вы можете комбинировать диапазоны, такие как «Range» («AG4», «B4: E4», «H4: I4»). ClearContents' ect –
@TimWilkinson, я не мог заставить это работать ... 'Неверно количество аргументов или недопустимое присвоение свойств' – CallumDA