【问题标题】:Run macro in background在后台运行宏
【发布时间】:2012-12-14 14:48:31
【问题描述】:

我在使用 VBA 宏时遇到了一些问题。

  1. 打开具有宏的 Excel 文件 (FILE1.xls) 时(该宏包含一个带有命令按钮的用户表单,我将其编程为使用这些命令按钮作为文件夹、网站等的快捷方式...)。这一步没有问题。

  2. 当我打开不可见的文件时,我试图打开一个没有宏的新 Excel 文件 (FILE2.xls)(例如我通过邮件收到的文件)。我认为这是来自我的宏的问题。

所以我想在后台运行这个宏并能够打开 6 个不同的 Excel 文件(例如)。

我一直在寻找解决这个问题的方法。

【问题讨论】:

  • 不用为语言道歉;为了清晰起见,其他用户可以编辑您的帖子,或者通过像这样的 cmets 询问更多细节。您可能想提供有关该过程及其中断位置的更多信息。例如,如果您打开 FILE1.xls,Excel 是否会打开 FILE2.xls?您能否提供更多关于您尝试过的方法以及结果如何的信息?

标签: vba excel


【解决方案1】:

您可以在其属性窗口中将 UserForms 的ShowModal 属性设置为False 以防止其阻塞。

【讨论】:

    【解决方案2】:

    我使用下面的函数在后台打开了几个工作簿。

    调用示例:

    Set newWorkbook = GetWorkbook(scoreCardLink)
    

    功能:

    Public Function GetWorkbook(fullFileName As String) As Workbook
    Application.ScreenUpdating = False
    Dim result As Workbook
    Dim sFileName As String
    On Error Resume Next
    
    strFilePath = fullFileName
    vParts = Split(strFilePath, "/")
    sFileName = vParts(UBound(vParts))
    
    Set result = Workbooks(sFileName)
    If (result Is Nothing) Then
        Application.enableEvents = False
        Set result = Workbooks.Open(fullFileName, ReadOnly = True, IgnoreReadOnlyRecommend = False)
    End If
    Set GetWorkbook = result
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-06
      • 2020-05-11
      • 1970-01-01
      • 2011-08-19
      • 2011-12-28
      • 2015-10-18
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多