Excel VBA循环遍历所有工作表并更改工作表颜色

我希望find一个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