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

打开用户指定的Excel工作簿,并将数据范围复制到另一个工作簿,excel,vba,Excel,Vba,我试图在Excel中运行一个宏,用户在其中选择要打开的文件,该宏将从该工作簿复制一个范围,并将其粘贴到原始工作簿中用户指定的单元格中。我对代码的尝试如下所示。我将“wbThis”作为要粘贴到的原始工作簿,“wbTarget”作为正在打开和复制的工作簿。当我运行代码时,我可以选择要打开的文件,但它会给出一个错误,显示“需要对象”,并且不会继续复制和粘贴 是否有一种方法可以使用Workbook.Open而不是Application.GetOpenFilename,但用户仍可以选择要打开的文件 谢谢你

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

是否有一种方法可以使用Workbook.Open而不是Application.GetOpenFilename,但用户仍可以选择要打开的文件

谢谢你的帮助

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)


非常感谢你的帮助!我必须更改代码中的另一项内容,使其正常工作,如下所示<代码>范围(“A1”)。选择范围(“B6:B121”)。复制
dim FileName as string
FileName = Application.GetOpenFilename(FileFilter:="Excel workbook (*.xls),*.xls", Title:="Open data")

Set wbTarget = Application.Workbooks.Open(FileName)