Я действительно новичок в программировании, и у меня есть электронная таблица, над которой я работаю, с которой я мог бы помочь. Мои столбцы A и B - это два раскрывающихся меню, где B зависит от A. Есть некоторые другие столбцы, которые используют VLookUp для получения информации на основе раскрывающегося списка, и еще один столбец, в котором у меня есть простая формула. Если я уберу значение из столбца «A», я бы хотел очистить всю строку (не теряя своих формул), и я бы сместил все ячейки со значениями под ним. Я искал много способов сделать это с удалением ячеек, но я не смог найти много с их очисткой. Мой код почти работает, но выглядит довольно не элегантно, так как я использую буфер обмена. Мне также нужно очистить последнюю строку в конце, используя этот код, но когда я пытаюсь это сделать, Excel вылетает. Любой совет будет наиболее ценным. Вот мой код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
Dim FirstRow As Long
Dim FirstColumn As Long
Dim LastRow As Long
Dim QtyColumn As Long
Dim FormulaRange1 As Range
Dim FormulaRange2 As Range
FirstColumn = 1
QtyColumn = 4
Set wks = ActiveSheet
If Not Application.Intersect(Target, Range("A11:A26")) Is Nothing Then
If IsEmpty(Target.Value) Then
wks.Range("B" & Target.Row).ClearContents
wks.Range("D" & Target.Row).ClearContents
FirstRow = Cells(Target.Row, Target.Column).Row
LastRow = Cells(Rows.count, 1).End(xlUp).Row
Set FormulaRange1 = wks.Range(Cells(Target.Row, Target.Column).Offset(1, 0), wks.Cells(LastRow, "B"))
Set FormulaRange2 = wks.Range(Cells(Target.Row, "D").Offset(1, 0), wks.Cells(LastRow, "D"))
FormulaRange1.Copy
wks.Range(Cells(FirstRow, FirstColumn).Address).PasteSpecial xlPasteValues
FormulaRange2.Copy
wks.Range(Cells(FirstRow, QtyColumn).Address).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
End If
End Sub