VBA 2010复制同一工作簿上2张之间的范围单元格避免循环

时间:2014-04-04 21:50:48

标签: excel-vba copy range cells vba

这些行旨在将一个行单元格的范围从工作簿中的工作表(源)复制到另一个(目标)。

以下代码引发error 1004 - Application-defined or object-defined

currBook.Sheets(strNomOnglet).Range(Cells(firstrow, 2), Cells(firstrow, 8)).Copy _Destination:=currBook.Sheets(strOngletCibl).Range("B1:H1")

firstrow variable is a seeking sequence result.

这个是好的但是太静态(不是相对引用):

currBook.Sheets(strNomOnglet).Range("B26:H26").Copy _Destination:=currBook.Sheets(strOngletCibl).Range("B1:H1")

我想避免使用循环。

针对该问题的任何提示或解释?

1 个答案:

答案 0 :(得分:0)

改为使用这个:

With currBook.Sheets(strNomOnglet)
    .Range(.Cells(firstrow, 2), .Cells(firstrow, 8)).Copy _
        Destination:=currBook.Sheets(strOngletCibl).Range("B1:H1")
End With

请注意,我已将Cells(firstrow, 2)更改为.Cells(firstrow, 2)(以完全限定您的单元格,即指定它们属于哪张表格)

此外,如果您只想复制(没有格式化),最好使用以下代码:

currBook.Sheets(strOngletCibl).Range("B1:H1").Value = _
    currBook.Sheets(strNomOnglet).Cells(firstrow, 2).Resize(, 7).Value

其中.Cells(firstrow, 2).Resize(, 7).Range(.Cells(firstrow, 2), .Cells(firstrow, 8))

的较短版本