我想做一些我认为很简单的事情,但显然并非如此。 我需要一个脚本,可以同时更改多个选项卡的颜色。如果我使用宏记录器,它的确可以完成工作,但是它为每个单独的选项卡制作了大量的代码块,因此我希望可以将一个数组放入其中,但是我似乎无法弄清楚。 >
我走得太远了,才被困住:
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”,就是这样。
答案 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)
您会得到的:
选项卡的颜色并不代表所有的颜色值。数值大于13时出现错误。要获取正确的数值,请使用宏记录器。