Как скопировать листы с определенным цветом вкладки из одной рабочей книги в другую? - PullRequest
0 голосов
/ 25 января 2019

У меня есть несколько рабочих книг, в которых есть несколько листов с цветом вкладки с кодом RGB (0,255,0), т. Е. Полностью зеленым, поэтому мне нужно скопировать только эти листы в ActiveWorkbook без открытия книг, содержащих эти зеленые листы

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

1 Ответ

0 голосов
/ 25 января 2019
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:\mySpecialFolder\myFile0"&B3&".xlsx"""

    myWbFullNames(1) = "C:\mySpecialFolder\myFile01.xls"
    myWbFullNames(2) = "C:\mySpecialFolder\myFile02.xls"
    myWbFullNames(3) = "C:\mySpecialFolder\myFile03.xls"
    myWbFullNames(4) = "C:\mySpecialFolder\TabColor4.xlsx"
    myWbFullNames(5) = "C:\mySpecialFolder\myFile05.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...