根据标签名称改变标签颜色excel vba

我希望能够根据标签单元格的名称更改标签颜色。 我试图让我的版本从名称列表中select以更改标签名称:

Sub SheetTabColor() Dim mySheets As Worksheets Dim mySheet As Worksheet Set mySheets = Sheets(Array("Christine", "Marina", "Roberto", "Urszula", "Lois", "Matt", "Stephanie", "Sally", "Iryna", "Katherine", "Matthew", "Julio", "Lavinia")) For Each mySheet In mySheets mySheet.Tab.Color = RGB(0, 255, 255) Next End Sub 

在运行这个脚本之后,我在“Set mySheets =”行中得到一个错误

错误信息

任何反馈将不胜感激,我明白,我可能不会接近。

工作表与工作表不一样。


您正试图将Worksheets分配到Worksheets ,因此出现错误。

使用相同的types和代码工作。

 Sub test() Dim mySheets As Sheets Dim mySheet As Worksheet Set mySheets = Sheets(Array("Sheet1", "Sheet2", "Sheet3")) For Each mySheet In mySheets mySheet.Tab.Color = RGB(0, 255, 255) Next End Sub 

试试这个名称数组作为string,而不是工作表。

 Sub SheetTabColor() Dim mySheets() As Variant Dim mySheet As Variant mySheets = Array("Christine", "Marina", "Roberto", "Urszula", "Lois", "Matt", "Stephanie", "Sally", "Iryna", "Katherine", "Matthew", "Julio", "Lavinia") For Each mySheet In mySheets ThisWorkbook.Worksheets(mySheet).Tab.Color = RGB(0, 255, 255) Next End Sub 

如果数组中的任何名称未find工作表名称,则此代码将失败。

以下将跳过找不到的东西:

 Sub SheetTabColor() Dim mySheets() As Variant Dim mySheet As Variant mySheets = Array("Christine", "Marina", "Roberto", "Urszula", "Lois", "Matt", "Stephanie", "Sally", "Iryna", "Katherine", "Matthew", "Julio", "Lavinia") For Each mySheet In mySheets On Error Resume Next ThisWorkbook.Worksheets(mySheet).Tab.Color = RGB(0, 255, 255) On Error GoTo 0 Next End Sub