Excel VBA 2010在同一工作簿上的两张图纸之间复制范围单元格避免循环
这些行用于将一系列行单元格从同一工作簿上的工作表(源)复制到另一个(目标)上 以下代码引发错误1004-应用程序定义或对象定义:Excel VBA 2010在同一工作簿上的两张图纸之间复制范围单元格避免循环,excel,copy,range,cells,vba,Excel,Copy,Range,Cells,Vba,这些行用于将一系列行单元格从同一工作簿上的工作表(源)复制到另一个(目标)上 以下代码引发错误1004-应用程序定义或对象定义: currBook.Sheets(strNomOnglet).Range(Cells(firstrow, 2), Cells(firstrow, 8)).Copy _Destination:=currBook.Sheets(strOngletCibl).Range("B1:H1") firstrow variable is a seeking sequence res
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.
这个可以,但太静态(不是相对引用):
我希望避免使用循环
有关于这个问题的提示或解释吗?请使用此提示或解释:
With currBook.Sheets(strNomOnglet)
.Range(.Cells(firstrow, 2), .Cells(firstrow, 8)).Copy _
Destination:=currBook.Sheets(strOngletCibl).Range("B1:H1")
End With
请注意,我已将单元格(第一行,2)
更改为.Cells(第一行,2)
(以完全限定单元格,即指定它们所属的工作表)
此外,如果您只想复制值(无格式),最好使用以下代码:
currBook.Sheets(strOngletCibl).Range("B1:H1").Value = _
currBook.Sheets(strNomOnglet).Cells(firstrow, 2).Resize(, 7).Value
其中,
.Cells(第一行,2).Resize(,7)
是.Range(.Cells(第一行,2),.Cells(第一行,8))的较短版本
好的,谢谢simoco,但是,还有一个细节没有更正:目标表不一样……我代码中的问题似乎特别需要在源和目标之间进行选择和切换。很抱歉:它们都不起作用。当我尝试返回到静态语句时,只有静态语句:-/1)出现了什么错误?2) 运行宏时,第一行的值是多少?3) 你在我的代码中做了什么修改吗?没有错误,只是没有效果。通过调试,第一行没有大的变化
currBook.Sheets(strOngletCibl).Range("B1:H1").Value = _
currBook.Sheets(strNomOnglet).Cells(firstrow, 2).Resize(, 7).Value