如果匹配条件,则搜索工作表的名称,然后使用格式复制粘贴值?

时间:2012-05-20 02:45:30

标签: excel-vba vba excel

更新:我能够解决这个问题。我记得VBA使用*和?显示字符串'If Sheet.name Like'* CopyA “'


我想制作一份复制特殊值,原始格式的所有工作表的来源包含单词:“CopyA”,例如“Apple CopyA”,“Mango CopyA”

我可以使用宏记录来查看VBA如何创建工作表和复制特殊,如下面的类似示例。

我在搜索工作表名称时遇到了麻烦 - 我找到的所有例子要么我必须知道确切的名称(与宏记录相同),要么我必须复制所有工作表(循环虽然所有工作表和复制,无论如何这个名字是)。

Sub Macro1()
    Sheets("Sheet1").Select
    Sheets("Sheet1").Copy Before:=Sheets(1)
    Sheets("Sheet1(2)").Select
    Cells.Select
    Selection.Copy
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub

如何搜索工作表的名称?在这种情况下,任何具有“CopyA”的工作表?

1 个答案:

答案 0 :(得分:4)

另一种方式:)你也可以使用Instr()。例如

对于工作簿中的所有工作表,请使用此

Option Explicit

Sub Macro1()
    Dim ws As worksheee

    For Each ws In ThisWorkbook.Sheets
        If InStr(1, ws.Name, "CopyA") Then
            '~~ > Your code
        End If
    Next
End Sub

对于ActiveSheet,请使用此

Option Explicit

Sub Macro1()
    If InStr(1, ActiveSheet.Name, "CopyA") Then
        '~~ > Your code
    End If
End Sub