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

08-05 15:02