Несовпадение типов в каждом следующем цикле группы, содержащей разные типы VBA Excel - PullRequest
0 голосов
/ 14 сентября 2018

Я пишу макрос в Excel, чтобы извлечь конкретную информацию, найденную на разных листах в разных книгах.Единственная проблема заключается в том, что рабочие листы не всегда названы точно одинаково.Однако их имена содержат общую строку «ExpandedEngReport».Чтобы решить эту проблему, я пытаюсь найти лист, содержащий эту строку, используя цикл FOR с командой Like, чтобы сравнить имена листов с частичной строкой «ExpandedEngReport».

Этот фрагмент кода возвращает несоответствие типовошибка.Я думаю, что это может быть связано с различными типами, найденными в группе ActiveWorkbook.Sheets (см. Прилагаемое изображение 1 ), в которой цикл For выполняет поиск.

' Find and Select ExpandedEngReport Worksheet
Dim ws As Worksheet
Dim flg As Boolean
For Each ws In ActiveWorkbook.Sheets
    If ws.Name Like "*ExpandedEngReport*" Then
        ws.Select Not flg
        flg = True
        GoTo CONTINUE
    End If
Next ws

Метка CONTINUE приводит к набору операций, которые я хотел бы выполнить на этом листе, когда он найден и выбран.

Группа ActiveWorkbook.Sheets содержит много различных типов объектов.Может ли это быть связано с проблемой?Есть ли способ обойти это?

1 Ответ

0 голосов
/ 14 сентября 2018

вы затемнили Dim ws As Worksheet и используете его как переменную цикла в коллекции Sheets, которая может содержать как Chart, так и Worksheet объекты

, поэтому исправление

Dim ws As Worksheet
...
For Each ws In ActiveWorkbook.Worksheets
...