我正在编写一个宏,它计算某个工作表中的列数,然后将此工作表内容复制到同一工作簿中的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,在工作表名称的乞讨处使用任何字母?谢谢!
答案 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