1
Excel 2003中(對他人未測試)爲什麼清理vba中的excel單元格無法正常工作?
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target
If Not Intersect(cell, Range("A2:A100")) Is Nothing Then
cell.ClearContents
cell.Offset(0, 1).Value = CInt(cell.Offset(0, 1).Value) + 1
End If
Next cell
End Sub
如果刪除字符串
cell.ClearContents
它的做工精細,下一個兄弟細胞的增量,
但幾個它的下一個同級細胞值增加百
爲什麼?
如何正確地完成這項工作?
嘗試'application.EnableEvents = FALSE'第一件事你輸入'Worksheet_Change''Sub',否則每次你從'Worksheet_Change'中的動作改變表單時,它都會被遞歸地調用。在子程序結束時(最好還使用錯誤處理程序)恢復'Application.EnableEvents = True'。 [This](http://www.cpearson.com/excel/Events.aspx)可能會有所幫助。 – Ioannis
沒有'cell.ClearContents','工作',因爲即使* Worksheet_Change *再次被調用並且在其本身之上運行,第二次* Target *在B列中,並且它不符合你的'Intersect'。仍然是錯誤的,但它確實運行。不建議。按照上面的建議切換'application.EnableEvents'。 – Jeeped
如果你完全符合你的'Range(「A2:A100」)',請參閱第3點[這裏](http://stackoverflow.com/a/30363620/2707864)(僅作爲無數次的例子)這顯示出來)。除非你明確不想,在這種情況下你最好實現[this](http://stackoverflow.com/a/27838913/2707864)。 –