Excel VBA:运行时错误1004调用工作簿
我发现了不同的运行时错误1004个问题,但没有一个是完全合适的。
当使用工作簿时(最后一行),我得到错误1004“应用程序定义或对象定义的错误”。
Dim mainWB As Workbook Dim mainWS As Worksheet Set mainWB = ActiveWorkbook Dim wb As Workbook Dim WBname As String For Each wb In Workbooks If Left(wb.Name, 4) = "D_SO" And Len(wb.Name) > 30 Then WBname = wb.Name Exit For End If Next mainWB.Sheets(1).Range(Cells(1, 1), Cells(1600, 300)).Value = Workbooks(WBname).Sheets(1).Range(Cells(1, 1), Cells(1600, 300)).Value
尽pipe名称是正确的,但我的最后一行中的工作簿对象似乎没有工作。 你能find我的错误吗?
当您使用该types的Range object
引用时: Range(LeftTopCell, RightBottomCell)
您必须关心实际上在括号内的内容。
在你的情况下,你总是有Activesheet cells
,这不是你想要的。 因此,您必须以这种方式完整引用单元格:
mainWB.Sheets(1).Range(mainWB.Sheets(1).Cells(1, 1), _ mainWB.Sheets(1).Cells(1600, 300)).Value = Workbooks(WBname).Sheets(1).Range(Workbooks(WBname).Sheets(1).Cells(1, 1), _ Workbooks(WBname).Sheets(1).Cells(1600, 300)).Value
为了使它更短,你可以考虑使用Range.Copy
方法。