【问题标题】:Excel does not fully open when starting macro on Workbook_Open在 Workbook_Open 上启动宏时 Excel 未完全打开
【发布时间】:2020-07-13 17:23:08
【问题描述】:

我写了一个makro,想在工作簿打开时直接运行。它可以工作,但是,宏在真正的电子表格完全打开之前启动,我只看到 Excel 在 makro 运行的整个过程中飞溅。

我应该提到我通过 Windows 任务计划程序打开工作簿。打开文件后,宏会循环并打开使用 SAP Analysis 插件更新外部数据的其他 Excel 文件的列表。

我将带有宏的电子表格作为计划任务调用以更新数据,然后再次自动关闭它:

Private Sub Workbook_Open()
    If Range("start_on_open").value = "YES" Then
        Call Process_action_table
    End If
End Sub

start_open 是我工作表中的一个命名范围,当我将其设置为“YES”时,makro 将自动启动。

当函数“Process_action_table”运行时,我在电子表格中显示状态信息,但当然只有启动屏幕可见,实际上什么都没有显示。

当我“手动”运行宏时,一切正常。在我看来,好像没有足够的处理时间来正确打开电子表格。

我在开始时添加了以下代码,但无济于事:

t_end = Now + TimeValue("0:0:10")
Do While Now < t_end
    DoEvents
Loop

任何建议将不胜感激。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    潜水托比。如果工作表加载是必不可少的条件,而不是使用Workbook_Open(),则使用Worksheet_Activate() 是合适的。尝试将此代码粘贴到包含“start_on_open”范围的工作表中:

    Private Sub Worksheet_Activate()
        If Range("start_on_open").value = "YES" Then
            Call Process_action_table
        End If
    End Sub
    

    【讨论】:

    • 嗯,这仅在我打开文件后单击工作簿时有效,但在加载文件时不会自动...
    • 当我手动打开文件时它可以工作,但是当我从 Windows 调度程序打开它时,它不会打开,即使我将“ActiveWorkbook.Sheets(___).Select”添加到工作簿。打开函数。
    • 我忘了提到我是从 Windows 任务计划程序打开文件的。直接从命令行调用它时得到相同的结果:"C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" path_to_excel.xlsx.
    • 您能否提供有关从调度程序打开文件的详细说明?你到底在做什么来自动启动文件?
    • 在调度程序中,动作是:“启动程序”,程序:“C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE”,参数“path_to_excel.xslx” ”。如上所述,您可以通过从命令行调用 Excel 来模拟它。即使宏开始运行,主文件也不会显示。
    【解决方案2】:

    我没有试过这个代码。请反馈好不好。 它将循环/等待工作簿可写。

    Private Sub Workbook_Open()
    Dim wb As Workbook
    Set wb = ThisWorkbook
        If Range("start_on_open").value = "YES" Then
            'wait for workbook to writeable
            Do Until wb.ReadOnly = False
                Application.Wait Now + TimeValue("00:00:01")
            Loop
            Call Process_action_table
        End If
    End Sub
    

    【讨论】:

    • 嗯,不,不幸的是也不起作用。宏启动,但现在我什至看不到启动画面了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多