我正在使用VBA來檢查特定列中的單元格何時發生更改,因此我可以調用不同的宏對它們進行排序。這很奇妙,除了它會在我插入新行時觸發。因此,使用IsEmpty我添加了一個檢查,看看有問題的單元格是否爲空。但我顯然做錯了,因爲我插入一行時仍然會調用宏。我究竟做錯了什麼?插入行時也會觸發宏「觸發單元更改」
的VBA是對細胞變化觸發:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A:A")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
If Not IsEmpty(KeyCells) Then
Call SortByDate
End If
End If
End Sub
您無法使用「IsEmpty」檢查數組。你需要遍歷'Intersect(KeyCells,Target)'中的單元格,因爲可以一次插入多行。 – Rory
①你可能用'if target.count> = columns.count過濾出行插入,然後退出子'②如果你正在更改該工作表上的任何東西,在開始更改任何內容之前使用'application.enableevents = false'並且應用程序.enableevents = true「,然後離開子。 – Jeeped