excel vba 加一句话表示程序运行进度

excel vba 加一句话表示程序运行进度,第1张

excel vba 加一句话表示程序运行进度(cnGzb.CursorLocation = adUseClient)

大多数人可能认为软件升级是不会有问题的,事实上,在升级过程中都会对其中共享的一些组件也进行升级,但是其它程序可能不支持升级后的组件从而导致各种问题。

Excel执行VBA时显示进度条。

i为代码的for循环,或者计步器

Application.statusbar=”完成 “&format(i/10000*100,”0.00”)

突然想起以看过一遍关于优化SQL查询的文章,里面对SQL查询优化有一个枯哗比较详细的说明,特别比较了在已建立索引的字段上进行查询与未建立索引字段上查询速度的差别,想起一句话,“所有快速谈败氏查找都是基于排序的”,于是马上修改代码,添加对rsGzb中的工号字段进行排序代码(rsGzb.Sort = "gh ASC"),运行,出错(运行时错误3251:当含散前提供程序不支持排序或过滤所必须的界面),查看sort属性的帮助,发现里面有一条说明“此属性要求将 CursorLocation 属性设置为 adUseClient。”,于是添加代码(cnGzb.CursorLocation = adUseClient),再运行。1秒内就完成了 *** 作

下面就是程序中的那几句关键代码(第1名和第3句在这儿的作用相同,可以只写一句)

cnGzb.CursorLocation adUseClient

Set rsGzb = New ADODB.Recordset

rsGzb.CursorLocation = adUseClient 'CursorLocation对于关闭的recordset对象可读可写,对于打开的recordset对象只读

rsGzb.Open sSqlCommand, cnGzb, adOpenKeyset, adLockBatchOptimistic

这是很简单的事情,有人居然说不能实现?你新建一个窗体,加一个LABEL1,然后在程序简仔开始时调用窗体:UserForm1.Show 0:DoEvents,d出提示,在程序结束时卸载窗体:Unload UserForm1,就搞定了。通过UserForm1.Label1.Caption = "****字符串***"语句还可以在过程中根据环境设置不同的提示。上传了一个附件,大家放心使用,为本人编写,不存在版权问题。

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()

Dim i&

UserForm1.Show 0

DoEvents    '没有DoEvents,窗拦纤汪体会空白

UserForm1.Label1.Caption = "正在载入数据,请稍等……"

DoEvents

For i = 1 To 100    '可以把循环替代成具体事务

    Sleep 100: DoEvents

Next

UserForm1.Label1.Caption 竖侍= "正在进行计算,请稍等……"

DoEvents

For i = 1 To 100

    Sleep 100: DoEvents

Next

Unload UserForm1

End Sub

我们在执行程序的时候,往往会需要一个提示,在前几个章节中讲到的MsgBox函数可以实现这个功能,其他禅戚的办法还有没有呢?该怎么办呢?

这时我们可以用到WshShell.Popup方法,WshShell.Popup方法的语法如下:

WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton

参数a) strText是必需的,与Msgbox的Prompt参数类似,代表在消息框中作为信息显示的字符或字符串。如果显示的内容超过一行,可以在每一行之间用换行符 (Chr(10))等将各行分隔开来。

b) natSecondsToWait是可选的,其时间单位为妙。如果提供natSecondsToWait参数且其值大于零,则消息框在natSecondsToWait 参数指定的秒数后关闭。

c) strTitle是可选的,代表在消息框标题栏中作为标题的字符或字符串余行,若省略,则窗口标题为"Windows 脚本宿主"。

d) natType是可选的,指定消息框中显示按钮的数目及类型、使用的图标样式、缺省按钮以及消息框的强制回应等,与MsgBox函数buttons参数相同.

e) intButton指示用户所单击的按扭编号,与MsgBox函数的返回值相同,若用户在natSecondsToWait 秒之前不单击按扭,则返回值为 -1 。

下面我们看下面的一个实例代码:

Sub MyWshShell()

Dim WshShell As Object

Set WshShell = CreateObject("Wscript.Shell")

WshShell.popup "执行完毕!", 2, "提示", 64

Set WshShell = Nothing

End Sub

代码解析:

WshShell过程使用WshShell.Popup方法显示消息框贺毁陵。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12434642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存