• 締切済み

実行時エラー’438 の解消

QNo.3040449 と同じ内容の質問です。本を見ながらコードを書いてみましたが、 実行時エラー’438 オブジェクトはこのプロパティまたは メソッドをサポートしていません。となってしまいました。 どこを変更すれば、よいのでしょうか? また、元データをそれぞれ、<条件>シートの内容で抽出し、 可視セルのみ<集約>にコピーしたのち、他の2つの ファイルのデーターも先に貼り付けたデータの最後行の 下へコピーしたいのですが、コードがよくわかりません。 教えて頂ければ幸いです。 集約するシート:テスト用.xls sheet1.(集約) sheet2.(条件) 元のデータ: 金額一覧表(01~03).xls Sheet1.(01~03)   金額一覧表(04~06).xls Sheet1.(04~06)  金額一覧表(07~10).xls Sheet1.(07~10) <各データは1.5万~3万件> Sub 抽出後コピー() Dim myTbl As Range, myQry As Range, sakiRang As Range Dim Nx As Long Dim WBK As Workbook, WB1 As Workbook Dim SH1 As Worksheet, SH2 As Worksheet Set WBK = Workbooks("テスト用.xls") Set WB1 = Workbooks("金額一覧表(01~3).xls") Set SH1 = WB1.Sheets("(01-03)") WBK.Activate WB1.Activate Nx = SH1.Range("R65536").End(xlUp).Row Set myTbl = WB1.SH1.Range("A1:Nx") ←ここでデバック Set myQry = WBK.Sheets("条件").Range("A1:F27") Set sakiRang = WBK.Sheets("集約").Range("A1") myTbl.AdvancedFilter xlFilterCopy, myQry, sakiRng End Sub

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>Set myTbl = WB1.SH1.Range("A1:Nx") ←ここでデバック 良く見てください。 A1:Nx なんていうアドレス表記はありえませんよ。範囲がA1~R列の最終行までなら  .Range("A1:R" & Nx) でしょう

nekonote19
質問者

お礼

お返事おそくなってすみません。 ご回答ありがとうございます。  .Range("A1:R" & Nx) と入れてみたのですが、やはり同じところでデバックしてしまいました。 どうも、Set myTbl を変数で宣言しても、サポートしていないようです。 とりあえず、別のやり方で解決できました。 ありがとうございました。

関連するQ&A