先日は色々おしえてくださりありがとうございました。
ベストアンサーを決めると補足ができないと知らず、急に終わらせてしまい申し訳ありません。
先日の質問については、おかげさまで希望の通り動かすことができました。
あとはエラーの処理と、大文字小文字の処理をと思ったところで、
検索条件について変更が入ってしまい、作り直すことになってしまいました。泣
そこで、最初の質問時におしえていただいたフィルターオプションを使い作っております。
今、検索ボックスに正常に条件を入れる分には問題なく動くのですが、間違った入力の際に不思議な動きをしてしまいます。
現在作成中のもの)
・「データ」シートの1~6行目を使い、ActiveXコントロールでテキストボックスを3つ配置。
・1つ目と二つ目は数値の範囲指定となっています。(日付のyyyymmだけを数値として入力)
2つ目は文字列での検索。
・データシートのA7からデータが入っていて、O列まで。
・検索に使うのは、B列とC列で、B列で数値の範囲指定で検索する。
エラーになるところ)
数値で、左のボックス1に小さい数値、右のボックス3に大きい数値を入れると
問題なく範囲抽出できますが、それを反対にすると、本来なら0件になり項目行だけがコピペされる
はずなのに、関係のないデータが出てしまう。
※入力した条件で実際にオートフィルタをやると0件になるのに…
書いてるもの)
Private Sub CommandButton1_Click()
Dim sh As Worksheet, rg As Range
Set sh = Worksheets("データ")
Set rg = Range(sh.Cells(7, 1), sh.Cells(Rows.Count, 1).End(xlUp)).Resize(, 15)
With Worksheets.Add(after:=Worksheets(Worksheets.Count))
.Name = "検索_" & Format(Date, "yyyymmdd_") & Format(Time, "hhmmss")
sh.Cells(7, 2).Copy .Cells(1, 1)
sh.Cells(7, 2).Copy .Cells(1, 2)
sh.Cells(7, 3).Copy .Cells(1, 3)
.Cells(2, 1).Value = ">=" & TextBox1.Value
.Cells(2, 2).Value = "<=" & TextBox3.Value
.Cells(2, 3).Value = "*" & TextBox2.Value & "*"
rg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range("B1:C2"), _
CopyToRange:=.Range("A3"), Unique:=False
.Range("1:2").Delete
End With
End Sub
何をどうすれば、正しく抽出できるのでしょうか?
お教えいただけると嬉しいです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
「正常に条件を入れる分には問題なく動く」とのことですが、本当ですか?
AdvancedFilter の CriteriaRange が、B1:C2 となっていますが、前段のコードを見る限り A1:C2 が正しいような気がします。ちょっとやってみて下さい。
間違っていたらゴメンナサイ。
ご回答ありがとうございます。
おっしゃる通りです。
正常に動いたと思っていたのですが、データの一番小さいものを
先頭に入れていたので、そう見えているだけでした。
ご指摘の個所を直したら、希望通り動きました!!
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 1セル当りの文字数が2...
-
DataGridViewの特定列に入力さ...
-
VBAを使って複数条件からの合計...
-
UTF-8で5~6バイトになる文字コ...
-
Excel VBA メール作成について ...
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
エクセルシート名の制限を変更...
-
ビットスワップとバイトスワッ...
-
URLは最高何文字まで可能なので...
-
COBOLのCOMP形式について
-
「1TB」のHDDに日本語は何字入...
-
ポインター引数の関数でコンパ...
-
バイナリとBCDコード
-
Javaで日本語1文字のバイト数
-
windowsのファイルパス最大文字数
-
なんでブラウザでPHPを動かすた...
-
この関数はどのプログラミング...
-
VBAでUnicodeしか存在しない文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの特定列に入力さ...
-
Excel 1セル当りの文字数が2...
-
ListView重複データ削除
-
GUIDの重複
-
VBAにて複数の重複データを取得...
-
VBAを使って複数条件からの合計...
-
ExcelVBAで、コメントのサイズ...
-
Excel VBA チェックツール
-
JPEGの縦横サイズ取得について。
-
VBA 最終行のひとつしたの行に...
-
javaのデータからヒストグラム...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
stable diffusionのエラー
-
エクセルシート名の制限を変更...
-
なんでブラウザでPHPを動かすた...
-
COBOLのCOMP形式について
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
おすすめ情報