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)。 –