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

两处错误。

你说的那句报错,是因为reg.Pattern=""里面的正则规则的编写有误。

还有一处就是.end(999).row,这里的999是什么意思?!

.end(xlToLeft)同.end(1),表示向左

.end(xlToRight)同.end(2),表示向右

.end(xlUp)同.end(3),表示向上

.end(xlDown)同.end(4),表示向下

不难实现,但代码就懒得写了。

步骤:

1、利用INPUTBOX()获得想查询的内容,并存放到局部变量INPUTDATA 中

2、用DIM MYRANGE AS RANGE 和以下语句组合进行查找

Set MyRange = Sheets("工作表名称").Cells.Find(what:=INPUTDATA, After:=ActiveCell, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False)

3、用条件语句进行判断是否找到或符合

If MyRange Is Nothing Then

MsgBox "没找到符合条件的记录!"

.....

else

找到的话,进行相应的单元格赋值 *** 作

.....

endif

4、用将上述步骤嵌套到一个循环语句内,以便继续查找。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存