• 締切済み

マクロの入力

仕事でマクロを使うことになりましたが,よくわかりません。 データ抽出を使用と思うのですが, Action:=xlFilterCopy,_ と入力するとコンパイルエラーが必ず表示されます。   式 :=の部分が反転するのですが何がおかしいのかわかったら教えてください。 入力は半角英数でしています。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

NO1です。 >Range("A4").AdvancedFilter_  ⇒アンダーバーが同様にスペースがない   又、Rangeが範囲指定になっていないので表範囲(見出し行含む)に変更が必要   例えば、Range("A4:C10")の様に指定して下さい。

maru2tomoe
質問者

お礼

ありがとうございます。マクロに関する知識が未熟なため,少し苦労しましたが,なんとかできたかなというところまできました。  2番の方を含めありがとうございました。また,質問するかもしれません。またお時間ありましたらよろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>Range("A4").AdvancedFilter_ 基本的にフィルターはセル範囲(複数セル)を対象にするのに。A41つになっている。 操作そのものが間違っていたのではないか。 ーー 私が操作をしてみると Sub Macro4() Sheets("Sheet1").Range("A1:A8").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("Sheet1").Range("B1:B2"), CopyToRange:=Range("A1"), _ Unique:=False End Sub となった ーーーー 例データ Sheet1 A1:A8 「コード」などと言う、項目見出しは必須。 コード a s d a c d a ーー Sheet1のB1:B2に 抜き出し条件 コード a 「コード」という見出しは必須。 ーー Sheet2に結果 コード a a a 前もってSheet2のA1に「コード」は入れておくべきように思う。 ーーー 他シートに結果を出す場合、Sheet2でフィルターフィルタオプションの設定を始めないといけないのを知ってますか。 Sheet1で操作を始めるとエラーになりませんか。 頼りなげな質問を見ていると疑わしい。 もしそうなら、エクセル全般の経験が足りない。 VBAだけの勉強をしようとしても空回りする。エクセルをよく知ることが先決。

maru2tomoe
質問者

お礼

ありがとうございます。おしゃっるとおりエクセルの勉強も必要だと思います。例を参考にもう少し勉強して理解していきたいと思います。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

カンマとアンダーバーの間にスペースを挿入してお試しください。  ,_ → , _

maru2tomoe
質問者

お礼

早速御連絡いただきありがとうございます。  スペースを入れてみましたが,今度は構文エラーがでてしまいました。  式は次のとおり作っています。  シート1にあるA4セル以下のデータについて,B1とB2(合計額)を検索条件とし,検索条件に合致するデータをシート2のA1以下にコピーさせ(るつもりでつくった。)たかったのですが。  ほかにおかしなところがあるのでしょうか。    Sub Adfilter1() ' ' Macro1 Macro ' ' Range("A4").AdvancedFilter_ Action:=xlFilterCopy, _ CriteriaRange:=Range("B1:B2"), _ CopyToRange:=Worksheets("sheet2").Range("A1"), _ Unique:=False End Sub

関連するQ&A