[英]Excel VBA that loops through all sheets and changes the sheet color
我希望找到一個excel vba,它將循環遍歷工作簿中的所有工作表,並按以下順序更改工作表顏色。 3,5,6,12,3,5,6,12,3,5,6,12等重復圖案直至其用完紙張。 下面的代碼可以在隨機顏色上更改它們,但我需要上面的模式。
Sub sbColorAllSheetTab()
'Declaration
Dim iCntr, sht
'This will hold the colorIndex number
iCntr = 2
'looping throgh the all the sheets of the workbook
For Each sht In ThisWorkbook.Worksheets
iCntr = iCntr + 1
'Applying the colors to Sheet tabs
sht.Tab.ColorIndex = iCntr
Next
End Sub
任何幫助都會很棒! TY!
嘗試這個:
Sub sbColorAllSheetTab()
Dim iCntr, sht, arrColors, numColors
arrColors = Array(3, 5, 6, 12) '<< array of color indexes
iCntr = 0
numColors = UBound(arrColors) + 1 '<< how many colors?
For Each sht In ThisWorkbook.Worksheets
sht.Tab.ColorIndex = arrColors((iCntr Mod 4)) '<< use Mod to cycle color
iCntr = iCntr + 1
Next
End Sub
通過它使用數組和索引
Sub sbColorAllSheetTab()
Dim iCntr As Long, sht As Worksheet, arr
arr = Array(3, 5, 6, 12, ...) ' any sequence
For Each sht In ThisWorkbook.Worksheets
sht.Tab.ColorIndex = arr(iCntr)
iCntr = (iCntr + 1) Mod (UBound(arr) + 1)
Next
End Sub
讓我知道你對此有何看法。
Sub sbColorAllSheetTab()
Dim shtMod As Byte
'looping throgh the all the sheets of the workbook
For Each sht In ThisWorkbook.Worksheets
shtMod = sht.Index Mod 4
Select Case shtMod
Case 1
sht.Tab.ColorIndex = 3
Case 2
sht.Tab.ColorIndex = 5
Case 3
sht.Tab.ColorIndex = 6
Case 0
sht.Tab.ColorIndex = 12
End Select
Next
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.