打开用户指定的Excel工作簿并将数据范围复制到另一个工作簿

我想在Excel中运行一个macros,用户select一个文件打开,macros将从该工作簿中复制一个范围,并将其粘贴到原始工作簿中的用户指定的单元格。 我的代码尝试如下所示。 我将“wbThis”作为要粘贴的原始工作簿和“wbTarget”作为正在打开和复制的工作簿。 当我运行代码时,我可以select要打开的文件,但是会出现“需要对象”的错误,不会进一步进行复制和粘贴。

有没有办法使用Workbook.Open而不是Application.GetOpenFilename,但仍然有用户能够select要打开的文件?

感谢您的帮助。

Dim wbTarget As Workbook Dim wbThis As Workbook Set wbThis = ActiveWorkbook Set wbTarget = Application.GetOpenFilename(FileFilter:="Excel workbook (*.xls),*.xls", Title:="Open data") wbThis.Activate Set rDest = Application.InputBox(Prompt:="Please select the Cell to paste to", Title:="Paste to", Type:=8) On Error GoTo 0 wbTarget.Activate Application.CutCopyMode = False wbTarget.Range("A1").Select wbTarget.Range("B6:B121").Copy wbThis.Activate rDest.PasteSpecial (xlPasteValues) Application.CutCopyMode = False wbTarget.Close False 

GetOpenFileName并不真的打开一个文件,只是得到它的名字。 尝试做Application.Workbooks.Open(TheResultOfGetOpenFileName)

 dim FileName as string FileName = Application.GetOpenFilename(FileFilter:="Excel workbook (*.xls),*.xls", Title:="Open data") Set wbTarget = Application.Workbooks.Open(FileName)