簡體   English   中英

Excel VBA循環遍歷所有工作表並更改工作表顏色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM