使用VBA更改Excel中选项卡的颜色?

使用VBA更改Excel中选项卡的颜色?,excel,vba,Excel,Vba,我创建了一个脚本,它创建了一个新的工作表,并在所述工作表中创建了一个新的选项卡,在更改所述选项卡的名称之前,我想让它使Sheet1到Sheet4都是红色的 With wbBK2.Sheets(wsWS1).Tab .Color = 255 End With 现在,上面的代码适用于单个选项卡,但我想知道是否有一种方法可以使用Excel VBA同时更改所有四个选项卡?尝试以下操作: Dim Sht As Worksheet For Each Sht In Application.Works

我创建了一个脚本,它创建了一个新的工作表,并在所述工作表中创建了一个新的选项卡,在更改所述选项卡的名称之前,我想让它使Sheet1到Sheet4都是红色的

With wbBK2.Sheets(wsWS1).Tab
    .Color = 255
End With

现在,上面的代码适用于单个选项卡,但我想知道是否有一种方法可以使用Excel VBA同时更改所有四个选项卡?

尝试以下操作:

Dim Sht As Worksheet
For Each Sht In Application.Worksheets
    With Sht.Tab
        .Color = 255
    End With
Next Sht
注意:


我认为您可以将
应用程序。工作表
更改为
wbBK2。工作表
,但我的咖啡因摄入太少,无法记住,也没有时间测试它。

起初我以为使用
工作表(数组(“Sheet1”,“Sheet2”)。选择
方法可以工作,但在测试(并运行宏记录器)之后,我发现没有

更新

ooo的评论很好。这是一种更干净、更容易阅读的方式:

Sub SheetTabColor()

Dim mySheets As Worksheets
Dim mySheet As Worksheet

Set mySheets = Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))

For Each mySheet In mySheets
    mySheet.Tab.Color = 255
Next


End Sub
这是我的原创作品。相同的想法,略有不同的方法:

Sub SheetTabColor()

Dim arrSheets() As String

arrSheets() = Split("Sheet1,Sheet2,Sheet3,Sheet4", ",")

Dim i As Integer
For i = LBound(arrSheets()) To UBound(arrSheets())

    Sheets(arrSheets(i)).Tab.Color = 255

Next

End Sub

尽管
设置SelSheets=wbBK2,您仍然可以循环工作表数组。工作表(数组(“Sheet1”、“Sheet2”、“Sheet3”、“Sheet5”、“Sheet6”):对于SelSheets中的每个sh:sh.Tab.Color=255:Next sh
工作正常,但它将颜色应用于工作簿中的所有工作表,这似乎不支持OP。如果sht.Name=“Sheet1”或sht.Name=“Sheet2”…
啊,我/我假设工作簿总共有4张工作表,他希望将它们全部更改为颜色。你知道什么。。。看来你毕竟是对的!如此之美。。。1000种解释问题的方法,1000种提供答案的方法。好处是为所有人学习!对于任何想知道如何设置RGB值的人来说,应该是这样的:
.Color=RGB(255、110、110)