2013-03-19 98 views
0

我有一个宏改变标签的颜色。如果工作表中有任何值,则选项卡变为绿色。如果什么都没有,那么它变成红色。我将这个宏从互联网上的现成宏组合在一起。目前我把它写到ThisWorkbook中,但在这个例子中它适用于工作簿中的每一张纸,我只想要我指定的2张(“我们的数据”和“测试”)。我将此宏分割为位于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 

回答

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模块)

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

+0

大卡兹颚!感谢您的帮助 – mgunia 2013-03-19 15:50:26