繁体   English   中英

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

[英]VBA Excel change color of multiple tabs

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

我走了这么远才被困住:

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”,就是这样。

要使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开始。因此,我们有Worksheets(i + 1)来避免第0次元件:

Public Sub TestMe()

    Dim arrColors As Variant
    arrColors = Array(12, 2, 3, 4, 5)    'these are colors

    Dim i As Long
    For i = LBound(arrColors) To UBound(arrColors)
        Worksheets(i + 1).Tab.ThemeColor = arrColors(i)
    Next i

End Sub

你会得到这个:

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM