![](/img/trans.png)
[英]Excel vba- Get code of change worksheet event to work for newly copied range
[英]Can't get any VBA code to work when pasted into worksheet such as a worksheet change event - Excel 2016
粘贴到工作表中后,似乎无法使“任何”代码正常工作。 这是我的代码示例。 如果从数据验证下拉列表中选择“是”,则只需将“工作表标签”颜色更改为绿色,否则将其设置为红色。 默认情况下,选项卡颜色为黄色
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = "Yes" Then
Me.Tab.ColorIndex = 4
Else
Me.Tab.ColorIndex = 3
End If
End Sub
工作簿已启用宏(.xlsm)。将代码粘贴到工作表中,并在顶部选择了“工作表”和“更改”
这只是一个代码示例。 我还有其他代码“根据单元格值隐藏/取消隐藏行”以及其他一些代码,但没有任何运行。 我遵循了“每个人”发布的说明(确切的步骤是相同的),在我的生命中,我什么也做不了。
谁能告诉我要检查的东西。
预先感谢您能提供帮助的任何人。 不胜感激。 戴夫
试试下面
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address="$C$3" Then
If Range("C3").Value = "Yes" Then
Me.Tab.Color = RGB(0,255,0)
Else
Me.Tab.Color = RGB(255,0,0)
End If
End If
End Sub
您应该指定目标是否更改,还应该缩小目标范围,以使每次更改下拉列表以外的任何单元格时都不会触发。 所以您的代码应该像这样摘要
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3")) Is Nothing Then
If Target.Address="$C$3" Then
If Range("C3").Value = "Yes" Then
Me.Tab.Color = RGB(0,255,0)
Else
Me.Tab.Color = RGB(255,0,0)
End If
End If
End IF
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.