如下VBA代码 在EXCEL运行时非常慢,有哪位大侠能帮忙解决优化一下。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如下VBA代码 在EXCEL运行时非常慢,有哪位大侠能帮忙解决优化一下。相关的知识,希望对你有一定的参考价值。
如下VBA代码 在EXCEL运行时非常慢,有哪位大侠能帮忙解决优化一下。
数据表在如下地址http://pan.baidu.com/s/1nt3eGQH
Sub 成品库存更新表编码自动填充()
Dim rs As Integer
rs = 3 '从第几行开始计算
Do Until Sheet11.Range("b" & rs) = ""
Range("m" & rs).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],编码对照!C[-10]:C[-7],4,0)"
rs = rs + 1
Loop
Sheet11.Range("m3:m" & rs).Select
Selection.Copy '复制选择单元格
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
建议你用字典,一次读入整个编码对照工作表的相应列,之后,用数组存储对应的值,再写入这个工作表.
这样应该会快很多 参考技术B Range("m" & rs).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],编码对照!C[-10]:C[-7],4,0)"
前面两名改为
Range("m" & rs).FormulaR1C1 = "=VLOOKUP(RC[-11],编码对照!C[-10]:C[-7],4,0)"
然为可以关闭公式自动计算。应该很快的追问
运行了一下,还是比较忙,2秒才3个单元格的进度。
本回答被提问者采纳 参考技术C Do loop 那段应该用几行搞定,先确定区域,然后区域填充。你录制宏,自己改一下。excel vba 运行速度慢
For i = 1 To number
For j = 1 To 31
Sheets("ABS").Cells(i, j + 1).Value =
Workbooks(getfilename).Sheets(orgsheet).Cells(i * 15 - 9, 8 + j).Value + _
Workbooks(getfilename).Sheets(orgsheet).Cells(i * 15 + 3, 8 + j).Value
Next j
Next i
上面的代码运行时间很长,如果nubmer= 18,差不多8秒才能完成,有没有更快的写法?
以上是关于如下VBA代码 在EXCEL运行时非常慢,有哪位大侠能帮忙解决优化一下。的主要内容,如果未能解决你的问题,请参考以下文章
利用VBA向excel表格中写入数据后,再次运行程序的话写入速度会非常慢