工作表名称中的数字为“任意数字”

时间:2016-09-06 13:23:25

标签: excel vba excel-vba

我有这段代码:

Set wb2 = ActiveWorkbook
wb2.Worksheets("-Incumbents").Range("B2:C2", Range("B2:C2").End(xlDown)).RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes
wb2.Worksheets("-Incumbents").Range("B2:C2", Range("B2:C2").End(xlDown)).Select
Selection.Copy

我希望它可以在任何名称中包含单词“-Incumbents”的工作表上工作。 问题是工作表被命名为“1-Incumbents”,“2-Incumbents”,“3-Incumbents”等...... 所以我想我需要一些变量来代码而不是实际数字,但我无法弄清楚如何做到这一点。 请帮忙。

2 个答案:

答案 0 :(得分:3)

尝试这样的事情:

Dim ws as Worksheet
Dim wb2 as Workbook
Set wb2 = ActiveWorkbook
For Each ws in wb2.worksheets
    If ws.Name Like "*-Incumbents" Then
        wb2.Worksheets("-Incumbents").Range("B2:C2", Range("B2:C2").End _
          (xlDown)).RemoveDuplicates Columns:=Array(1, 2), Header _
          :=xlYes
        wb2.Worksheets("-Incumbents").Range("B2:C2", Range("B2:C2").End _
          (xlDown)).Select
        Selection.Copy
     End If
Next

答案 1 :(得分:3)

正如Scott Craner所说,首先,让你的所有床单都有一个循环。 其次,将sheet.name与“Incumbents”进行比较,您可以使用“difference[1]”或“Like”函数:

InStr