Нужна помощь в добавлении цикла для подсчета всех скрытых листов или листов, начинающихся с "S." - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу удалить список, заменив его какой-либо функцией автоматического подсчета, которая подсчитывает либо количество скрытых листов в рабочей книге, либо подсчитывает все листы с именем «S.»(даст тот же результат, что будет проще)

Цель состоит в том, чтобы автоматизировать функцию, чтобы "22" не использовалось, поскольку в некоторых книгах меньше листов

Я пробовал несколько функций, нодо сих пор не может интегрировать счетчик во вторую часть кода (для ii = от 1 до 22)

Dim list(22) As Variant> 
list(1) = "S.xxx "
list(2) = "S.xx "
etc 


Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Filename As String 
Dim GetFile As Variant 


Workbooks.Open GetFile(i)
With ActiveWorkbook
For ii = 1 To 22
Set ws1 = Sheets.(list(ii))
Set ws2 = ThisWorkbook.Sheets(list(ii))
ws1.Cells.Copy ws2.Cells 

Next ii
End with

ActiveWorkbook.Close

1 Ответ

0 голосов
/ 07 апреля 2019

Вы можете использовать цикл объявления For Each ... Next для проверки первого символа имени текущего листа:

Dim ws As Worksheet
Dim GetFile As Variant

' some code to define GetFile...

With Workbooks.Open(GetFile(i)) ' open and reference wanted file
    For Each ws In .Worksheets ' loop through referenced workbook worksheets
        If UCase(Left(ws.name, 1) = "S") Then ' if current worksheet name begins with "S"
            ThisWorkbook.Worksheets(ws.name).UsedRange.Clear ' clear "target" worksheet (i.e. worksheet in ThisWorkbook with the same name) used range
            ws.UsedRange.Copy ThisWorkbook.Worksheets(ws.name).Range("A1") ' copy current worksheet used range to "target" worksheet
        End If
    Next
    .Close
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...