0

我有一个可以更改标签颜色的宏。如果工作表中有任何值,则选项卡将变为绿色。如果什么都没有,它会变成红色。我从网上找到的现成的宏中结合了这个宏。目前我把它放到 ThisWorkbook 但在这种情况下它适用于工作簿中的每张纸,我只想要我指定的那两张纸(“我们的数据”和“测试”)。我将此宏拆分为位于 ThisWorkbook 上方的工作表,但它不起作用。有人可以帮我修改吗?

Private Sub Workbook_SheetChange(ByVal Test As Object, ByVal Target As Range)
If Cells.Find("*") Is Nothing Then
    Test.Tab.ColorIndex = 3
Else
    Test.Tab.ColorIndex = 10
End If
End Sub

Private Sub Workbook_SheetChange2(ByVal Test As Object, ByVal Target As Range)
If Cells.Find("*") Is Nothing Then
    Our Data.Tab.ColorIndex = 3
Else
    Our Data.Tab.ColorIndex = 10
End If
End Sub
4

1 回答 1

1

您不能以这种方式拆分它...删除第二个并首先改进,如下所示:

Private Sub Workbook_SheetChange(ByVal Test As Object, ByVal Target As Range)

If Test.Name = "Our Data" Or Test.Name = "Test" Then
    If Cells.Find("*") Is Nothing Then
        Test.Tab.ColorIndex = 3
    Else
        Test.Tab.ColorIndex = 10
    End If
End Sub

将其保存在您现在拥有的位置(在ThisWorkbook模块中)

编辑- 所有想要使用它的人的附加信息。提出的想法非常低效。每次在任何工作表中的任何单元格中进行任何更改时,都会触发该事件。请考虑使用其他事件。我建议使用SheetActivate.SheetDeactivate

于 2013-03-19T15:34:59.687 回答