VBA Excel更改多个选项卡的颜色

时间:2018-07-10 14:56:33

标签: excel vba excel-vba

我想做一些我认为很简单的事情,但显然并非如此。 我需要一个脚本,可以同时更改多个选项卡的颜色。如果我使用宏记录器,它的确可以完成工作,但是它为每个单独的选项卡制作了大量的代码块,因此我希望可以将一个数组放入其中,但是我似乎无法弄清楚。 >

我走得太远了,才被困住:

Sub TESTCOLOR2()
Dim ArrayOne As Variant
ArrayOne = Array("800", "1000", "1100", "1200", "1300", "1400", "1500", "1600")

    With ArrayOne.Tab
        .ThemeColor = 65535
        End With
    End Sub

我得到一个错误“ Object required”,就是这样。

1 个答案:

答案 0 :(得分:6)

要制作3个具有相同颜色的纸张,并通过数组传递,则可以执行以下操作:

Public Sub MultipleTabChanger()

    Dim wsToBeColored As Variant
    wsToBeColored = Array("Sheets2", "Sheets4", "Sheets3")  'these are names
    Dim singleWs As Variant

    For Each singleWs In wsToBeColored
        Worksheets(singleWs).Tab.ThemeColor = 7
    Next

End Sub

您将遍历数组的各种变量,并将它们作为参数传递给Worksheets(parameter)Tab.ThemeColor对其全部更改。


要为不同的工作表设置不同的颜色,数组和集合(工作表是一个集合)的一个小技巧是,集合从1开始,数组从0开始。因此,我们有{{ 1}}避免使用第0个元素:

Worksheets(i + 1)

您会得到的:

enter image description here

选项卡的颜色并不代表所有的颜色值。数值大于13时出现错误。要获取正确的数值,请使用宏记录器。