Excel:VBA:如何提高大数据量的取倒数运行速度
发布网友
发布时间:2023-04-27 07:29
我来回答
共2个回答
热心网友
时间:2023-10-22 10:28
计算的话只能这么做,必须循环到每个单元格,读取数据、进行判断或计算、写入单元格
但是在选择单元格时有省力的办法,就是用SpecialCells方法,直接选取数值单元格,然后循环处理每个选中的单元格,如:
set iRng=range("A:A").SpecialCells(xlCellTypeConstants, 1)
for each c in iRng
c.value = 1 / c.value
next追问谢谢,不知道还有没有其他好办法啊,一起等待其他高手的回答!
热心网友
时间:2023-10-22 10:28
先关闭屏幕刷新吧。
application.ScreenUpdating=False
记得程序运行完毕后加上这句,就恢复回来了。
application.ScreenUpdating=true
形成这样:
application.ScreenUpdating=False
set iRng=range("A:A").SpecialCells(xlCellTypeConstants, 1)
for each c in iRng
c.value = 1 / c.value
next
application.ScreenUpdating=true追问谢谢,这个办法我早已经采用了。
追答使用数组吧。
将表格的数据转到数组来执行,速度会大有提升的。
热心网友
时间:2023-10-22 10:28
计算的话只能这么做,必须循环到每个单元格,读取数据、进行判断或计算、写入单元格
但是在选择单元格时有省力的办法,就是用SpecialCells方法,直接选取数值单元格,然后循环处理每个选中的单元格,如:
set iRng=range("A:A").SpecialCells(xlCellTypeConstants, 1)
for each c in iRng
c.value = 1 / c.value
next追问谢谢,不知道还有没有其他好办法啊,一起等待其他高手的回答!
热心网友
时间:2023-10-22 10:28
先关闭屏幕刷新吧。
application.ScreenUpdating=False
记得程序运行完毕后加上这句,就恢复回来了。
application.ScreenUpdating=true
形成这样:
application.ScreenUpdating=False
set iRng=range("A:A").SpecialCells(xlCellTypeConstants, 1)
for each c in iRng
c.value = 1 / c.value
next
application.ScreenUpdating=true追问谢谢,这个办法我早已经采用了。
追答使用数组吧。
将表格的数据转到数组来执行,速度会大有提升的。