[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『続:指定したセルの値よりも大きいと小さい』(よよっち)
お世話になります。
午前中にオートフィルタのvbaで
質問させていただいたよよっちと申します。
続きの質問がございまして投稿させていただきました。
オートフィルターのかかっている左から7列目のデータから
H7セルの値以上を抽出する方法を以下で教えて頂きました。↓
Selection.AutoFilter Field:=7, Criteria1:=">=" & Range("H7").Value, Operator:=xlFilterValues
そのあと、残り2つ(計3つ)のいかの抽出条件も同じようにし
・左から8列目のデータからI7セル以上の値を抽出したい
・左から9列目のデータからJ7セル以上の値を抽出したい
と思い、
Selection.AutoFilter Field:=7, Criteria1:=">=" & Range("H7").Value, Operator:=xlFilterValues
Selection.AutoFilter Field:=8, Criteria1:=">=" & Range("I7").Value, Operator:=xlFilterValues
Selection.AutoFilter Field:=9, Criteria1:=">=" & Range("J7").Value, Operator:=xlFilterValues
と作成しましたが、左から9列目のデータからJ7セル以上の値が
抽出できません。抽出できるデータは確実に存在し、手入力でチェックボックスにて数字をポチポチと選ぶと抽出できるのですが、vbaだと抽出されるべきデータが出ずに、ただタイトル行だけが残ってしまいほしいデータが抽出できません。なにが原因かわからないのでお時間あるときにご教授いただけたらと存じます
< 使用 Excel:Excel2010、使用 OS:Windows7 >
手動で行うときは7列目で抜出、その後条件の解除、次に8列目の抜出、解除して9列目の抜出としているのだろうか? それとも7列目で抜出、そのまま8列目・9列目で抜出としているのだろうか。 (ねむねむ) 2018/04/20(金) 15:10
7列目で抜出、そのまま8列目・9列目で抜出としています。
ためしに、手動でやってみたらできたという意味で手動の話を出してみました。
宜しくお願いします。
(よよっち) 2018/04/20(金) 15:17
あの〜 ^^ 数値じゃなく数字の文字列? なんかじゃないですよねぇ こちらでは普通にうごいてますので。まぁ テスト環境は、憶測でしかありませんので。。。 ねんのため MsgBox TypeName(Range("I10").Value) レンジの中を実際の9列目のアドレスに変更して メッセージのご確認を。 外していましたら済みません。
(隠居じーさん) 2018/04/20(金) 16:07
ということは Selection.AutoFilter Field:=9, Criteria1:=">=" & Range("J7").Value, Operator:=xlFilterValues だけでも機能しないのですよね?
J7の値がフィルター値より大きすぎるとか?
( seiya) 2018/04/20(金) 16:19
seiyaさん、そうなのです
Selection.AutoFilter Field:=9, Criteria1:=">=" & Range("J7").Value, Operator:=xlFilterValues この1行だけでやってみましたが、うまく作動しませんでした。
フィルター値より大きくはありません。48まであるのでちょっと長いのですが、、。
書式設定も他のと同じ標準です。
ただ違うのは、Jの列だけ、計算式の結果の数字でフィルターをかけています。
(だた、計算式の結果を値貼り付けでやってみても、抽出結果は出ずにタイトル行だけが残ってしまいます)
(よよっち) 2018/04/20(金) 16:53
どの様な数式ですか?
ちなみにAutoFilterは数値でも、文字列でも機能するはずです。 ( seiya) 2018/04/20(金) 17:01
おはようございます ^^ いえいえ。 こちらこそ、見当違いだったみたいで。。。 あまりお役にたてず。すみません。 原因、早くわかるといいですね。
m(__)m
(隠居じーさん) 2018/04/21(土) 10:19
ちょっと、テストしてもらっていいですかね?
手動でオートフィルターを設定してください。
(抽出条件の設定はしないで)
で、イミディエイトウィンドウを表示しておいて、
以下のコードを実行してみてください。
Sub test001()
Dim Rng As Range Set Rng = ActiveSheet.AutoFilter.Range With Rng Debug.Print "フィルター範囲:", .Address Debug.Print "J7セル値:", .Worksheet.Range("J7").Value Debug.Print "J7セル見た目:", .Worksheet.Range("J7").Text Debug.Print "9列目値:", .Cells(2, 9).Value Debug.Print "9列目見た目:", .Cells(2, 9).Text Debug.Print "9列目見た目:", .Cells(2, 9).Formula End With End Sub
そうするとイミディエイトウィンドウに結果が出力されます。
それをここにコピペしていただけますか?
(まっつわん) 2018/04/21(土) 11:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.