per*_*hil 3 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
Run Code Online (Sandbox Code Playgroud)
我得到一个错误"对象需要",这是关于它..
要通过数组传递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
Run Code Online (Sandbox Code Playgroud)
循环遍历数组的变体并将它们作为参数传递给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
Run Code Online (Sandbox Code Playgroud)
你会得到这个:
选项卡颜色不会采用颜色的每个值.我的错误值高于13.要获得正确的值,请使用宏录制器.