Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
140 views
in Technique[技术] by (71.8m points)

excel - How to copy sheets with certain tab color from one workbook to another?

I have several Workbooks where there are several sheets that have Tab color with RGB code (0,255,0) i.e. completely green so I need to copy only these sheets to ActiveWorkbook without opening workbooks containing these green sheets

Sub Copy_Green_Sheets()
Dim wb As Workbook
Dim ws As Worksheet

If ws.Tab.Color = RGB(0, 255, 0) Then
         Set wb = Workbooks("Target workbook")
         For Each ws In Workbooks("source workbook").Worksheets
         ws.Copy After:=wb.Sheets(wb.Sheets.Count)
         Next ws
End If
End Sub
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Option Explicit

Sub DoItForAllWorkbooks()
    Dim myWorkbook As Workbook
    Dim myWbFullNames(100) As String
    Dim iCt As Integer

    ' You might to want to create such a list with Excel:
    '="'        myWbFullNames("&B3&") = ""C:mySpecialFoldermyFile0"&B3&".xlsx"""

    myWbFullNames(1) = "C:mySpecialFoldermyFile01.xls"
    myWbFullNames(2) = "C:mySpecialFoldermyFile02.xls"
    myWbFullNames(3) = "C:mySpecialFoldermyFile03.xls"
    myWbFullNames(4) = "C:mySpecialFolderTabColor4.xlsx"
    myWbFullNames(5) = "C:mySpecialFoldermyFile05.xls"

    For iCt = 1 To 5
        Workbooks.Open myWbFullNames(iCt)
        Set myWorkbook = ActiveWorkbook
        Call Copy_Green_Sheets_NEW(ActiveWorkbook)
        myWorkbook.Close
    Next iCt
End Sub

Sub Copy_Green_Sheets_NEW(SourceWorkbook as workbook)
Dim wb As Workbook
Dim ws As Worksheet
    Set wb = Workbooks("Target workbook")
    'For Each ws In Workbooks("source workbook").Worksheets --- OLD
    For Each ws In SourceWorkbook.Worksheets
        If ws.Tab.Color = RGB(0, 255, 0) Then
            ws.Copy After:=wb.Sheets(wb.Sheets.Count)
        End If
    Next ws
End Sub

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...