我正在Excel中编写一个宏,以提取在不同工作簿的各种工作表上找到的特定信息。唯一的问题是工作表的名称并不总是完全一致。但是,它们的名称确实包含"ExpandedEngReport"的常见字符串。为了解决这个问题,我试图使用带有 Like 命令的 FOR 循环搜索包含此字符串的工作表,以将工作表名称与"ExpandedEngReport"的部分字符串进行比较。
此代码段返回类型不匹配错误。我认为这可能是由于在 For 循环正在搜索的 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
指向我想在此工作表上执行的一组操作,一旦找到并选择。
ActiveWorkbook.Sheets 组包含许多不同类型的对象。这可能与问题有关吗?有什么办法吗?
您已将Dim ws As Worksheet
变暗,并将其用作Sheets
集合的循环变量,该集合可以同时包含Chart
或Worksheet
对象
所以修复是
Dim ws As Worksheet
...
For Each ws In ActiveWorkbook.Worksheets