- ベストアンサー
エクセルVBAのマクロでエラーが発生する理由について教えてください
- エクセルVBAのマクロで、指定した条件に基づいてデータをフィルタリングする方法を学習しています。
- テキスト通りにコードを入力したところ、赤色のエラーメッセージが表示され、マクロが正常に動作しない問題が発生しました。
- 指定した条件の記述方法に誤りがある可能性や、他の要素に問題がある可能性があります。助言いただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- VBAでオートフィルタを使った抽出がうまくいきませんのでどなたか教えて
VBAでオートフィルタを使った抽出がうまくいきませんのでどなたか教えてください。 A列、C列に日付が入っていて、A列は空白以外のセルを表示し、かつC列は、開始日、終了日で抽出したいのですが、うまくいきません。 With Worksheets("sheet").Activate 開始日 = ">=" & TextBox1.Text 終了日 = "<=" & TextBox2.Text .Range("A1:N200").AutoFilter Field:=1, Criteria1:="<>" .Range("A1:N200").AutoFilter Field:=3, _ Criteria1:=開始日, Operator:=xlAnd, _ Criteria2:=終了日
- ベストアンサー
- その他MS Office製品
- オートフィルタ抽出データをコピーするマクロについて
マクロについて勉強中の者です。 "Sheet1"にあるデータをオートフィルタで抽出し、 "Sheet2"に抽出データのみをコピーをしたいと思っています。 Range("A10:G59").Select Selection.ClearContents With Worksheets("Sheet1").Range("A1") .AutoFilter .AutoFilter Field:=1, Criteria1:="○" .CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9") End With End Sub としてみたのですが、 これを実行すると、オートフィルタが1行目(A1)ではなく、 2行目で設定されてしまい、抽出データがずれてしまいます。 A B C 1 品 名 仕入先 発注数 ←タイトル行に設定したい 2 りんご ヤマト 10 ← この行に▼が設定される 色々調べた結果のマクロなので、どこが悪いのか見当がつきません。 解りやすく教えていただける方がおられましたら、よろしくお願い致します m(__)m
- ベストアンサー
- オフィス系ソフト
- excelで複数条件で抽出する
excel VBAで質問です。(初心者レベルです) A列からZ列までデータがあり、オートフィルタでE列で条件に当てはまるものと、E列では条件外だが、Y列では条件に当てはまるものを別シートに抽出したいと思っています。 Sub Macro1() With Worksheets("Sheet1") .Range("A1").AutoFilter _ Field:=5, Criteria1:="*条件*" .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("Sheet2").Range("A1") End With End Sub Fieldを変えて、E列、Y列それぞれはできるのですが、データが重複してしまいます。 重複分を削除するため、セル入力で連番を降って、重複するものを削除しようとしましたがうまくいかず。 なにかいい方法はないでしょうか。
- ベストアンサー
- オフィス系ソフト
- excelVBAで年をインプットボックスにする
オートフィルタで月ごとのシートにデータを振り分けるVBAを書いたのですが、毎年使えるようにしたいと思います。 現在のものが↓です。(4月分のみ。あとは繰り返し) Sub month() With Worksheets("Sheet1") .Range("A1").AutoFilter _ Field:=7, _ Criteria1:=">=2010/04/01", Operator:=xlAnd, _ Criteria2:="<2010/05/01" .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("Sheet2").Range("A1") End With Worksheets("Sheet2").Activate Columns("A:AK").EntireColumn.AutoFit End Sub これをインプットボックスを使って、2011と入れると、2011年度の月ごとに抽出するようなVBAはどのように組めばいいのでしょう。 年度なので、1月~3月の設定とうるう年になったときに文字動的に日にちが変わるようにするにはどうするのかよくわかりません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- オートフィルタをマクロで作成したときに列番号ではなく文字で判別させたい
こんにちわ、質問させていただきます。 マクロでオートフィルタを使いたいのですが、 Worksheets("Sheet1").Range("A1").AutoFilter _ field:=1, _ Criteria1:="東京" VisibleDropDown:=False このfield:=1という列番号指定を文字列で検索したいと思っています。 例えばどこかの行に「地域」という列があった場合”地域”の列にフィルタをかけて東京を検索したいといった場合です。 ↓ 地域 市外局番 郵便番号 東京 03 100 このフィールドを文字列指定することは不可能なのでしょうか?
- ベストアンサー
- Visual Basic
- オートフィルターの使い方
マクロでオートフィルタを使おうと思っているのです。 作成したリストの中で、日付でフィルタしようと思い 下記を作成してみましたがうまくいきません。 Worksheets("シート名").Range("A2").AutoFilter Field:=30, Criteria1:="<=2004/9/30", Operator:=xlAnd = 1, Criterial2:=">=2004/9/1" 条件と致しましては任意の期間(例:2004/9/1~2004/9/30)を抽出条件としたいのですが・・・ 又、セルには空白も存在します。 宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- VBAの日付範囲の抽出について
作業SheetのC列から日付で範囲指定して検索された行を検索workへ行をコピーしたいのですが、 日付の抽出がうまくできません。どなたかご教授願います。 また、できることなら、オートフィルタを利用せずに抽出したいのですが、書き方がわかりません。 素人の質問で申し訳ございませんが、よろしくお願いします。 開始年月日 = ">=" & S受付日Box.Text 終了年月日 = "<=" & E受付日Box.Text Worksheets("作業Sheet").Range("C1").AutoFilter _ Field:=3, _ Criteria1:=開始年月日, _ Operator:=xlAnd, Criteria2:=終了年月日 Worksheets("作業Sheet").Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("検索work").Range("A2") Worksheets("検索work").Range("2:2").Delete 'タイトル行の削除 MsgBox "抽出が完了しました。「検索結果の表示」ボタンから確認してください"
- 締切済み
- Visual Basic
- VBA関数
PC ほぼ素人です。ネットで調べて、下記のコードを作成できました。 バージョンは2007 Sub 抽出() Worksheets("Sheet5").Activate Worksheets("Sheet5").Range(Cells(1, 1), Cells(328, 18)).Clear With Worksheets("Sheet3").Range("A8") .AutoFilter Field:=1, Criteria1:=Worksheets("Sheet3").Range("a2") ''(1) .AutoFilter Field:=2, Criteria1:=Worksheets("Sheet3").Range("b2") ''(1) .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets("Sheet5").Range("A1") ''(2) .AutoFilter ''(3) End With Worksheets("Sheet5").Activate End Sub Sheet5に抽出後、そのデータを書き換え Sheet3へ戻したいのですが可能なのでしょうか? A B C D E F G 1 月 日 得意先 前回 数量 今回 数量 2 3 5 A商事 1月15日 2 2月5日 3 抽出後、Sheet3には、ABDEFGを戻したいのです。 説明不足かもしれませんが、どうか宜しくお願い致します。
- ベストアンサー
- Visual Basic
- Excel2010テーブル内の見出しの列番取得
VBAでテーブル内のオートフィルターを処理するにあたり、 "AAA"という見出しの列でフィルターをかけたいのですが、 下記の構文等ではエラーが出てうまくいきませんでした。 Worksheets("sheet1").ListObjects("xxx").Range.AutoFilter Field:="AAA", Criteria1:="<>" なので、"AAA"の列が何番目なのかを取得して上記構文に代入しようとしているのですが、 どう記述すれば良いでしょうか? ちなみにうまくいきませんでしたが、イメージは下記の通りです。(笑 列番号 = Worksheets("sheet1").ListObjects("xxx").ListColumns("AAA").Column 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excelマクロで他シートへの抽出:エラー
こちらの質問 http://okwave.jp/qa/q4760155.html を参考に、エクセルマクロを作りました。 Sheet1の10列目(J)に@が入っている行をすべて、 Sheet2に抽出表示します。コードは次になります。 Private Sub Worksheet_Activate() With Sheets("Sheet1") .AutoFilterMode = False .Range("A1:N1").AutoFilter .Range("A1:N1").AutoFilter Field:=10, Criteria1:="@" .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") .AutoFilterMode = False End With End Sub このマクロを実行すると、確かにSheet2では抽出が行われるのですが、 同時にSheet1の内容も抽出された内容に変わってしまいます。 どこに問題があるのでしょうか。 よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
ご丁寧に、ありがとうございました。 本当に助かりました。 感謝いたします。