从一个工作簿复制到另一个工作簿
这应该在文本工作簿中抓取一个范围,然后将其粘贴到主文件夹中:
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