アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記、xmlファイルを開いてコピペするというvbaの記述です。しかし、
ThisWorkbook.Worksheets(1).Range(Cells(target, 1), Cells(target + 287, 1)) = wb.Range(Cells(2, 25), Cells(289, 25))
の行で、実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。とエラーが出てしまいます。どのように修正したらいいかおしえていただけないでしょうか。


Sub OpenFilesInFolder()
Dim path, fso, file, files
Dim target As Long
path = ThisWorkbook.path & "\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set files = fso.GetFolder(path).files
'フォルダ内の全ファイルについて処理
For Each file In files
'ファイルを開いてブックとして取得
Dim wb As Workbook
Workbooks.OpenXML _
Filename:=file.path, LoadOption:=xlXmlLoadImportToList
Set wb = ActiveWorkbook
' MsgBox wb.Name
'ブックに対する処理
target = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
ThisWorkbook.Worksheets(1).Range(Cells(target, 1), Cells(target + 287, 1)) = wb.Range(Cells(2, 25), Cells(289, 25))
ThisWorkbook.Worksheets(1).Range(Cells(target, 2), Cells(target + 287, 2)) = wb.Range(Cells(2, 27), Cells(289, 27))
ThisWorkbook.Worksheets(1).Range(Cells(target, 3), Cells(target + 287, 3)) = wb.Range(Cells(2, 28), Cells(289, 28))
'保存せずに閉じる
Call wb.Close(SaveChanges:=False)
Next file
End Sub

「エクセルVBA(実行時エラー438)の対」の質問画像

A 回答 (3件)

プロパティが足りないんですね


Set wb = ActiveWorkbook
Set ws = ActiveSheet(開いた時のシートで良ければ)
wb.ws.Range(Cells(2, 25), Cells(289, 25))
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございました。

お礼日時:2023/04/23 23:28

wb.Range(Cells(2, 25), Cells(289, 25)



この指定の場合、wbはシートで無いとイケナイのに、実際はwbにはSet wb = ActiveWorkbookでブックを指定してる。

Set wb = ActiveSheet じゃ無いのですか??
    • good
    • 0

こんにちは



違う原因の場合もあるかも知れませんが、ひとまず気付いた点を・・・

>ThisWorkbook.Worksheets(1).Range(Cells(target, 1), Cells(target + 287, 1)) = _
>wb.Range(Cells(2, 25), Cells(289, 25))
Rangeの指定がそれぞれ、Worksheet(1)、wbとなっていますが、範囲指定をしているCells()は無指定なので、デフォルトのActivesheet.Cells()として解釈されます。
他シートのセルを参照するわけにはいかないので、それが原因ではないでしょうか?

 ThisWorkbook.Worksheets(1).Cells(target, 1).Resize(288)
等としておけば、矛盾は生じないと思います。

あるいは、targetの値(=既存最終行)が大きすぎて、シートの列内に納まらないとか・・
(多分、この場合は違うエラーメッセージになりそう)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています