我想我已经在整个互联网上搜索了一个简单的进度条,但我找不到一个在函数/子完成后取得进展的东西.
我将在下面的代码中演示我想要的内容.我对VBA的了解是基本的,也是这样的.
我有一个表单,有一个按钮,当我点击按钮时,他应该执行这个:
Sub program()
progressbarform.show
Call function1
"set progressbar to 20%"
Call funcion2
"set progressbar to 40%"
Call function3
"set progressbar to 100%"
"Unload progressbar form"
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以使用委派来完成此工作.您的进度条与执行功能1,2和3的形式不同,因此您应该尝试在进度条表单中执行.在调用form.Show后,表单具有焦点,并且在表单关闭之前,函数1,2和3将不会运行.
在进度条窗体中(假设它有标签和进度条控件)放置一个将更新进度条的函数:
Public Sub UpdateProgress(intProgress As Integer, Optional strMessage As String)
If Not IsMissing(strMessage) Then
lbl_Progress.Caption = strMessage
End If
pb_Progress.Value = intProgress
Call Me.Repaint
End Sub
Run Code Online (Sandbox Code Playgroud)
然后,您可以在进度条表单中执行您的功能.您可以通过将调用它的表单设置为公开函数的对象或仅在进度条表单中存储函数1,2和3来完成此操作.
Sub RunFunctions()
UpdateProgress 0, "Starting functions"
UpdateProgress 10, "Begin function1"
Call function1
UpdateProgress 30, "Finished function1"
UpdateProgress 50, "Begin function2"
Call function2
UpdateProgress 70, "Finished function2"
UpdateProgress 90, "Begin function3"
Call function3
UpdateProgress 100, "Finished function3"
UpdateProgress 100, "Finished All Functions"
End Sub
Run Code Online (Sandbox Code Playgroud)
如果您需要帮助设置,请向我提问.
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |