[英]Run a Macro When New Data is Pasted into the Sheet
我對 VBA 很陌生,並試圖弄清楚下面的內容。
我希望我的子程序在 CB 工作表的單元格 A1 中粘貼新數據(或更改值)時運行。
第二個代碼在單獨運行時完美運行。 但是,在 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
崩潰很可能是由您的第二個過程啟動的更改觸發的 Change 事件引起的。 嘗試在執行該過程時抑制事件。
Application.EnableEvents = False
Call LoopAndIfStatement
Application.EnableEvents = True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.