Excel 当单元格内容通过VBA更改但手动更改时,工作表\u更改不起作用
我正在尝试为B列中所有单元格的背景上色,这些单元格的内容已通过VBA更改 如果我手动更新单元格,背景会发生变化,但通过VBA进行更改时背景不会发生变化。我不明白为什么它不随VBA而改变 在名为Excel 当单元格内容通过VBA更改但手动更改时,工作表\u更改不起作用,excel,vba,Excel,Vba,我正在尝试为B列中所有单元格的背景上色,这些单元格的内容已通过VBA更改 如果我手动更新单元格,背景会发生变化,但通过VBA进行更改时背景不会发生变化。我不明白为什么它不随VBA而改变 在名为OriginalData的工作表模块中,我有 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Dim nName As String, nEmail As String Application.E
OriginalData
的工作表模块中,我有
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim nName As String, nEmail As String
Application.EnableEvents = False
For Each c In Target
If c.Column = 2 And Target <> "" Then
c.Interior.Color = RGB(255, 255, 0)
End If
Next c
Application.EnableEvents = True
End Sub
您可能在
目标“
上出错,并被困在应用程序中。EnableEvents=False
环境状态
首先,转到VBE的即时窗口(Ctrl+G)并输入命令Application.EnableEvents=True
。在VBE中,针对多个目标单元格计数对代码进行此修改
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim nName As String, nEmail As String
Application.EnableEvents = False
For Each c In Target
If c.Column = 2 And c.Value <> "" Then '<~~ c <> "", not Target <> ""
c.Interior.Color = RGB(255, 255, 0)
End If
Next c
Application.EnableEvents = True
End Sub
Private子工作表\u更改(ByVal目标作为范围)
调光范围
Dim nName作为字符串,nEmail作为字符串
Application.EnableEvents=False
对于目标中的每个c
如果c.Column=2且c.Value为“”,则当事件处理程序执行过程中出现一些错误时,',它将无法在下一次正常工作。您可以找到并修复错误,它将正常工作
作为快速修复,您可以执行以下步骤:
在工作表开始处添加“错误时继续下一步”
\u更改为
防止错误使代码停止工作李>
隐藏错误
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim nName As String, nEmail As String
Application.EnableEvents = False
For Each c In Target
If c.Column = 2 And c.Value <> "" Then '<~~ c <> "", not Target <> ""
c.Interior.Color = RGB(255, 255, 0)
End If
Next c
Application.EnableEvents = True
End Sub