首页 > 解决方案 > 我希望我的代码将工作表选项卡传输到我只知道部分名称的 excel 文件

问题描述

Sub movedata_tab_to_2excelFile()



Windows("1excelfileInstructions and macrostest.xlsm"). _

Activate

Sheets("Data").Select

Sheets("Data").Copy Before:=Workbooks( _

"2excel File4253.xlsx").Sheets(3)

Windows("Instructions_and_macros_Test1.xlsm").Activate

End Sub

我想将 [1excelfileInstructions and macrostest.xlsm] 中的数据选项卡移动到 2excel File4253.xlsx,并且我将宏存储在 Instructions_and_macros_Test1.xlsm 中。

我的问题是 2excel File4253.xlsx 的 excel 文件名不断变化,我只知道它的部分名称。无论如何运行我的代码,它可以忽略excel文件名之前和之后的数字,比如向它添加星号/通配符示例excel文件

标签: excelvba

解决方案


如果您的 Excel 文件已打开,那么您可以尝试执行以下操作:

Sub foo()
    Dim wbkCount As Long

    For wbkCount = 1 To Workbooks.Count
        If Workbooks(wbkCount).Name Like "*excel File*" Then
            Debug.Print "This is the one!" & Workbooks(wbkCount).Name
            'do something
        End If
    Next wbkCount
End Sub

基本上,这个想法是让 VBA 遍历所有打开的工作簿并找到与名称excel File匹配的那个。找到后,代码将执行相关操作(用您的语句替换Debug.Print'do something行)。Copy

编辑- 完整代码:

Sub movedata_tab_to_2excelFile()
    Dim wbkCount As Long

    Windows("1excelfileInstructions and macrostest.xlsm"). _
        Activate

    For wbkCount = 1 To Workbooks.Count
        If Workbooks(wbkCount).Name Like "*excel File*" Then
            Sheets("Data").Copy Before:=Workbooks( _
                Workbooks(wbkCount).Name).Sheets(3)
        End If
    Next wbkCount

    Windows("Instructions_and_macros_Test1.xlsm").Activate
End Sub

推荐阅读