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
Next
----------------------------------------------
AAA_1:
----------------------------------------------
------------------------
解决方案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
Next
----------------------------------------------
AAA_1:
----------------------------------------------