加快VBScript中的复制和粘贴循环

时间:2014-07-22 14:49:47

标签: performance loops vbscript

我一直在努力加快以下代码的速度。基本上,我需要将Excel中的单元格复制到下一个填充单元格。但是,在只有100行的文件上,完成需要将近10秒钟。当工作表长达一千行或更长时,这可能会有问题。我尽力研究这个问题。我所拥有的代码是我在这里和其他地方找到的东西。

我是新手程序员,所以我的问题是:
如何加快这一过程?
为什么这么慢?
(更好的代码)如何更有效地工作?

' *****Copy data down in columns A and B*****
    'Copy data in column A until next cell with a value, then get that value and copy on...
Set objWorksheet = objExcel.Worksheets(1)
    objWorksheet.Activate
Set objRange = objWorksheet.UsedRange
    objRange.SpecialCells(xlCellTypeLastCell).Activate
    intLastRow = objExcel.ActiveCell.Row
For k = 3 to intLastRow
    If objExcel.Cells(k, 1).Value = "" Then
        Set objRangeCopy = objExcel.Cells(k - 1, 1)
        objRangeCopy.Copy
        set objRangePaste = objExcel.Cells(k, 1)
        objRangePaste.Value = objRangeCopy
    End If
Next
    'Do the same with Column B
For k = 3 to intLastRow
    If objExcel.Cells(k, 2).Value = "" Then
        Set objRangeCopy = objExcel.Cells(k - 1, 2)
        objRangeCopy.Copy
        set objRangePaste = objExcel.Cells(k, 2)
        objRangePaste.Value = objRangeCopy
    End If
Next

0 个答案:

没有答案