我有創建的腳本,在改變所述選項卡的名稱之前,在所述工作表中創建一個新工作表和一個新選項卡,我希望使Sheet1到Sheet4都是紅色。使用VBA在Excel中更改制表符的顏色?
With wbBK2.Sheets(wsWS1).Tab
.Color = 255
End With
現在上面的代碼工作的各個選項卡,但我想知道有沒有辦法改變所有四個選項卡,在使用Excel VBA同一時間?
謝謝。
我有創建的腳本,在改變所述選項卡的名稱之前,在所述工作表中創建一個新工作表和一個新選項卡,我希望使Sheet1到Sheet4都是紅色。使用VBA在Excel中更改制表符的顏色?
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
注:
我想你可能能夠改變Application.Worksheets
到wbBK2.Worksheets
,但我跑太低咖啡因記,或時間來測試它。
起初我以爲使用Sheets(Array("Sheet1","Sheet2")).Select
方法可行,但經過測試(並運行宏記錄器)後,我發現它沒有。
更新
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.Sheets(Array(「Sheet1」,「Sheet2」,「Sheet3」,「Sheet5」,「Sheet6」))來循環工作表的數組:對於SelSheets中的每個sh:sh。 Tab.Color = 255:Next sh' – user3357963
+1 @ooo。我非常喜歡那個評論,我編輯了我的答案:) –
作品不錯,但它的顏色會應用到工作簿中所有表,這似乎並不支持OP。可能需要類似'If sht.Name =「Sheet1」或sht.Name =「Sheet2」......' –
啊,我是/假設該工作簿共有4張,他正在尋找將它們全部改爲顏色。 – danielpiestrak
而且whadda知道......看起來你畢竟是對的! SO ...的美麗......解釋問題的1000種方式,1,000種提供答案的方式。好處是爲所有人學習! –