对于包含不同类型的组的每个下一循环类型不匹配VBA Excel

问题描述 投票:7回答:1

我在Excel中编写一个宏来提取在不同工作簿中的各种工作表中找到的特定信息。唯一的问题是工作表并不总是完全一致地命名。但是,它们的名称包含“ExpandedEngReport”的常用字符串。为了解决这个问题,我试图使用带有Like命令的FOR循环来搜索包含此字符串的工作表,以将工作表名称与部分字符串“ExpandedEngReport”进行比较。

此代码段返回类型不匹配错误。我想这可能是由于ForWork正在搜索的ActiveWorkbook.Sheets组中的各种类型(参见附图1)。

' 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导致我希望在找到并选择此工作表后执行的一组操作。

The ActiveWorkbook.Sheets Group contains many different types of objects. Could this be linked to the issue? Is there any way arround this?

excel vba for-loop each type-mismatch
1个回答
9
投票

你已经使Dim ws As Worksheet变暗并通过Sheets集合将其用作循环变量,can contain both Chart or Worksheet objects

所以修复是

Dim ws As Worksheet
...
For Each ws In ActiveWorkbook.Worksheets
© www.soinside.com 2019 - 2024. All rights reserved.