从一个工作簿复制到另一个工作簿

这应该在文本工作簿中抓取一个范围,然后将其粘贴到主文件夹中:

Sub activateMacro() Dim masterWKB, copyWKB As Workbook Set masterWKB = ThisWorkbook Dim masterWKS, copyWKS As Worksheet Set masterWKS = Worksheets("Data") Dim lastLineCopy, lastLineWKB As Long Dim pasteRange As Range Dim listofFileNames As Variant listofFileNames = buildfilenameArray for i = 0 to Ubound(listofFileNames) lastLineWKB = masterWKS.Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 Debug.Print lastLineWKB Set copyWKB = Workbooks.Open("c:temp\" & listofFileNames(i, 0) & "") lastLineCopy = copyWKB.Sheets(1).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row Debug.Print lastLineCopy copyWKB.Sheets(1).Range("A15:AG" & lastLineCopy & "").Copy masterWKB.masterWKS.Range(masterWKS.Cells(lastLineWKB, 1)).PasteSpecial Next end sub 

我错误地与对象不支持他的财产或方法在:

 masterWKB.masterWKS.Range(masterWKS.Cells(lastLineWKB, 1)).PasteSpecial 

我不知道为什么。

编辑:

得到它与此工作,但我想避免使用激活。

 masterWKB.Activate masterWKS.Range("A" & lastLineWKB & "").PasteSpecial 

只要将错误的行更改为:

 masterWKB.masterWKS.Cells(lastLineWKB, 1).PasteSpecial 

出于某种原因,当您使用Range内的Cells时,您必须指定Range的开始和结束单元格(即使它们是相同的单元格)。 单个单元格引用将给出您描述的错误。 尝试:

masterWKB.masterWKS.Range(masterWKS.Cells(lastLineWKB, 1),masterWKS.Cells(lastLineWKB, 1)).PasteSpecial