我已经在Excel中创建了数据库报告生成器。我正在尝试创建一个对话框,该对话框在程序运行时显示状态信息。

生成报告时,尽管会出现对话框,但无法刷新/更新其显示的信息。大多数情况下,对话框仅部分显示。我尝试使用.repaint方法,但仍然得到相同的结果。生成报告后,我只会看到完整的对话框。

最佳答案

在Excel(XP或更高版本)中执行操作时,以下代码可以很好地工作。

对于在Excel外部进行的操作(例如,连接到数据库并检索数据),此功能最大的好处是可以在操作之前和之后显示对话框(例如“获取数据”,“获取数据”)

创建一个名为“ frmStatus”的表单,在名为“ Label1”的表单上放置一个标签。

将表单属性设置为“ ShowModal” = false,这将允许代码在显示表单时运行。

Sub ShowForm_DoSomething()

    Load frmStatus
    frmStatus.Label1.Caption = "Starting"
    frmStatus.Show
    frmStatus.Repaint
'Load the form and set text

    frmStatus.Label1.Caption = "Doing something"
    frmStatus.Repaint

'code here to perform an action

    frmStatus.Label1.Caption = "Doing something else"
    frmStatus.Repaint

'code here to perform an action

    frmStatus.Label1.Caption = "Finished"
    frmStatus.Repaint
    Application.Wait (Now + TimeValue("0:00:01"))
    frmStatus.Hide
    Unload frmStatus
'hide and unload the form

End Sub

10-07 14:24