VBA以大块方式粘贴数据

时间:2016-06-03 13:47:26

标签: excel vba excel-vba

我有一些代码可以在工作表1的单元格中查找数据并将其多次粘贴,一次一个单元格,粘贴到另一个工作表的单元格中。哪个有效,预计需要相当长的时间并经常冻结电脑。当然,有一种方法可以将这些数据一次粘贴到所有指定的单元格中,或者至少是其他一些优化方式?任何帮助表示赞赏。

Dim sourcerange4 As Integer
Dim offset4 As Integer
Dim qproc As Integer
qproc = 1
sourcerange4 = 1
offset4 = 3

     SourceRange3 = 1
      Offset3 = 3
   Do Until qproc = SourceRange * QuestRange
   qproc = qproc + 1

            Sheets(SourceSheet).Select
                    Cells(SourceRange3, Offset3).Copy


            Sheets(RawData).Select
                            Do Until Cells(sourcerange4, offset4) = ""
                                  sourcerange4 = sourcerange4 + 1
                           Loop

            Sheets(RawData).Select
            Cells(sourcerange4, offset4).Select
            ActiveSheet.Paste

    Loop

1 个答案:

答案 0 :(得分:0)

根据您在文字中描述的内容,可以使用Resize方法完成此操作,因为您似乎在循环行以粘贴值。

我尽可能地使用了您的参考资料,并尝试按原样合并您的代码,但这有点令人困惑,因此您可能需要进行一些调整,但从概念上讲,它应该就是全部。< / p>

Dim sCopyValue as String
sCopyValue = Sheets(SourceSheet).Cells(SourceRange3, Offset3).Value

Dim iCopyRows as Integer
iCopyRows = SourceRange * QuestRange
Sheets(RawData).Cells(sourcerange4,offset4).Resize(iCopyRows,1).Value = sCopyValue