【问题标题】:Excel VBA Code to select opened Excel fileExcel VBA代码选择打开的Excel文件
【发布时间】:2018-05-04 11:56:58
【问题描述】:

我已经通过各种网站进行了大量搜索,但无济于事。

之前我创建了简单的 VBA 以从自动生成的 XLS 中选择 XLS,它由如下软件创建。这个excel最后没有任何文件类型,因为它还没有保存在任何地方,我不打算保存它。

Sub Test()

    Windows("All Jobs").Activate

End Sub

最近,软件生成了新的文件名“All Jobs (0 - XX)”,其中 XX 可以是 1 到 100 之间的任意数字。因此,上面的代码不再起作用。添加 * 没有帮助。

有什么建议吗? 提前致谢。 扎伊姆

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以在Application (Excel) 中遍历所有Workbooks,如果当前工作簿的名称是Like "All Jobs" & "*" >> 这是您想要的工作簿。

    注意:确认您需要Activate工作簿,通常不需要。

    代码

    Option Explicit
    
    Sub Test()
    
    Dim WB As Workbook
    Dim AllJobSWB As Workbook
    
    For Each WB In Application.Workbooks
        If WB.Name Like "All Jobs" & "*" Then
            Set AllJobSWB = WB ' set the matched workbook
            Exit For
        End If
    Next WB
    
    ' if you must activate the workbook, use the line below
    AllJobSWB.Activate
    
    End Sub
    

    【讨论】:

    • @ZaiemOthman 什么错误?在哪一行?反正我看到你已经接受了上面的“ANSWER”
    • 对不起,我昨天缺席了。 “AllJobSWB.Active”处显示错误。运行时错误'91'。未设置对象变量或 With 块变量。我不确定这是什么意思。
    • 您不需要使用& 运算符。你可以在字符串的末尾加上*"All Jobs*".
    【解决方案2】:

    您可以循环通过Windows 集合来检查每个窗口的标题。试试这个:

    Private Sub Test()
        Dim myWindow As Window
        For Each myWindow In Windows
            If Left(myWindow.Caption, 8) = "All Jobs" Then myWindow.Activate: Exit Sub
        Next myWindow
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2016-05-25
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多