如何在VBA中使用Like运算符?

时间:2014-03-05 14:29:02

标签: excel vba excel-vba

我正在编写一个宏,它计算某个工作表中的列数,然后将此工作表内容复制到同一工作簿中的Sheet1。

Sub test()
Dim LastCol As Long
Set currentsheet = ActiveWorkbook.Sheets("Sheet1")

LastCol = Sheets("APage").Range("A1").End(xlToRight).Column
Sheets("APage").Range("1:1" & LastCol1).Copy
currentsheet.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

End Sub

特别之处在于工作表名称可能是:"APage", "BPage", "10Page"等。因此,第一个后者可能不同,但"Page"始终保留在工作表名称中。 如何正确使用*在VBA中说使用所有工作表,名为Pages,在工作表名称的乞讨处​​使用任何字母?谢谢!

3 个答案:

答案 0 :(得分:4)

可悲的是,你做不到。但您可以使用

之类的代码
Dim ws As Excel.Worksheet
For Each ws In ActiveWorkbook.Worksheets
    If InStr(ws.Name, "Page") > 0 Then
        'ws is a worksheet with the text 'Page' in its name
    End If
Next

答案 1 :(得分:3)

为了遍历带有通配符名称的所有工作表,您可以执行以下操作:

Sub LoopThroughWorksheets()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name Like "*Page" Then
            'Do whatever with this particular sheet
        End If
    Next ws
End Sub

答案 2 :(得分:2)

Sheets集合中没有通配符搜索。您需要遍历它们,例如:

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    If InStr(ws.Name, "Page") > 0 Then
        ...
    End If
Next