3

ユーザーが開くファイルを選択するExcelでマクロを実行しようとしています。マクロはそのブックから範囲をコピーし、元のブックのユーザー指定のセルに貼り付けます。コードでの私の試みを以下に示します。貼り付ける元のブックとして「wbThis」を使用し、開いてコピーするブックとして「wbTarget」を使用しています。コードを実行すると、開きたいファイルを選択できますが、「オブジェクトが必要です」というエラーが表示され、コピーと貼り付けに進みません。

Application.GetOpenFilenameの代わりにWorkbook.Openを使用する方法はありますが、それでもユーザーは開くファイルを選択できますか?

ご協力ありがとうございました。

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
4

1 に答える 1

3

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)
于 2013-03-26T16:04:17.740 に答える