Я очень плохо знаком с VBA и пытаюсь понять следующее.
Я хочу, чтобы моя подпрограмма запускалась всякий раз, когда новые данные вставляются (или изменяется значение) в ячейку A1 на листе CB.
Второй код отлично работает, когда он запускается один. Однако после вставки первого кода для запуска макроса после изменения A1 я получаю сообщение об ошибке «Ошибка времени выполнения 91: переменная объекта или переменная блока не установлена». Ошибка вызывается в этой строке кода "SHT.Range (" k "& I) .Value = U.Offset (-1, 0)"
Как я могу запустить второй макрос после вставки чего-либо или изменить в ячейке A1?
1.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C" & ThisWorkbook.Worksheets("CB").UsedRange.Rows.Count)) Is Nothing Then
Call LoopandIfStatement
End If
End Sub
2.
Sub LoopandIfStatement()
Dim SHT As Worksheet
Dim I As Long
Dim O As Long
Dim U As Range
Set SHT = ThisWorkbook.Worksheets("CB")
MyLr = SHT.Cells(Rows.Count, 1).End(xlUp).Row
For I = 1 To MyLr
If IsEmpty(SHT.Range("a" & I).Value) = False Then
Set U = SHT.Range("A" & I)
SHT.Range("k" & I).Value = SHT.Range("A" & I).Value
Else
SHT.Range("k" & I).Value = U.Offset(-1, 0)
End If
Next I
For O = 2 To MyLr
If SHT.Range("g" & O).Value = "Closing Balance" Then
SHT.Range("l" & O).Value = SHT.Range("j" & O).Value
End If
Next O
End Sub