加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vba或vb运行时,光标总是闪动,运行效率很低

(2019-06-15 22:01:15)
标签:

vba光标总是闪动

vba或vb的程序鼠标闪

vb鼠标的光标总是闪动

光标闪动运行慢

excel的vba

分类: 数据工厂_VBA
vba或vb运行时,光标总是闪动,运行效率很低,
举例,一段vb或vba的程序,在虚拟机中运行的时候,已经关闭了屏幕刷新,
但是光标仍然总是闪动,并且运行效率很低,如果按ctrl+alt,(将光标移除虚拟机的环境,则运行效率会加速)
-------------------------
其中可能的原因是,
给excel中批量很多单元格赋值的时候,赋值的内容为空,当单元格量大的时候,效率就会很低
如果加上进度条,就会发现,效率最少慢了一倍
注意:如果使用clearcontents也一样慢
------------------------
解决方案1,
在循环赋值的时候,如果发现赋值给单元格的数值,为空,则跳过去,如下面这段代码
----------------------------------------------

          For Hang = 11 To ZhHang
                If .Cells(Hang, Lie).Value = "" Then           '--如果为空值,则不赋值,否则光标会闪动,影响运行效率
                        GoTo AAA_1
                Else
                        EL_App.Worksheets("自定义-04").Cells(Hang, Lie).Value = "'" & .Cells(Hang, Lie).Value
                End If
AAA_1:
          Next
----------------------------------------------
------------------------
解决方案2,
在循环赋值的时候,如果发现赋值给单元格的数值,为空,则直接赋值为一个撇<'>(强制转为文本的字符),
如下面这段代码
----------------------------------------------

          For Hang = 11 To ZhHang
                If .Cells(Hang, Lie).Value = "" Then        '--如果为空值,则赋值撇<'>
                        EL_App.Worksheets("自定义-04").Cells(Hang, Lie).Value = "'" 
                Else
                        EL_App.Worksheets("自定义-04").Cells(Hang, Lie).Value = "'" & .Cells(Hang, Lie).Value
                End If
AAA_1:
          Next
----------------------------------------------


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有