[[20180420141739]] 『続:指定したセルの値よりも大きいと小さい』(よよっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『続:指定したセルの値よりも大きいと小さい』(よよっち)

お世話になります。
午前中にオートフィルタの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


 >フィルター値より大きくはありません。48まであるのでちょっと長いのですが、、。
なにが「48まで」で、
なにが、「ちょっと長い」のですか?

ちょっと、テストしてもらっていいですかね?
手動でオートフィルターを設定してください。
(抽出条件の設定はしないで)

で、イミディエイトウィンドウを表示しておいて、
以下のコードを実行してみてください。

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.