[[20200420120723]] 『VBA オートフィルターで指定コード以外を選ぶ』(ピノ) ページの最後に飛ぶ

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

 

『VBA オートフィルターで指定コード以外を選ぶ』(ピノ)

いつも参考にさせて頂いております。
立て続けに投稿失礼いたします。

VBAにてオートフィルターにてAF列で指定コード(20366558)以外を選ぶ
という操作をしたいのですが、
下記の通り構文を記載しても、何も選択されません。

間違っている部分がございましたら、教えて頂けないでしょうか。

    'コード:20366558以外を選ぶ(AF列)
    Dim LR As Long
    LR = Cells(Rows.Count, 1).End(xlUp).Row  '最終行取得変数

    ActiveSheet.Range("$A$1:$AH$" & LR).AutoFilter Field:=32, Criteria1:= _
        "<>20366558"

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 >下記の通り構文を記載しても、何も選択されません。

 選択なんかされないですよ、普通は・・・。
 手動でやったら選択されるんですかね?
(BJ) 2020/04/20(月) 13:30

■1
[[20200414113828]] 『VBAコピペでのエラー』(ピノ)
↑でも書きましたが、コードは「Sub 〇〇 〜 End Sub」までが一つのプロシージャと呼ばれるものなので、数行くらい横着せずに提示されたほうがお互いに誤解が無くてよいと思います。

■2
>オートフィルターにてAF列で指定コード(20366558)以外を選ぶ
オートフィルターにてAF列で指定コード(20366558)以外を【抽出】と解釈して。

    Sub 実験01()
        With ActiveSheet
            .AutoFilterMode = False
            .Range("A:AH").AutoFilter Field:=32, Criteria1:="<>20366558"
        End With
    End Sub

(もこな2 ) 2020/04/20(月) 14:53


BJ様
説明不足で申し訳ございません。
指定コードでフィルター抽出が出来ればいいという意味でした。
(ピノ) 2020/04/20(月) 15:38

もこな2様
■1
何度もはっしょった記載をしてしまい、申し訳ありません。
以後気を付けます。

■2
説明不足で申し訳ございません。
オートフィルターにてAF列で指定コード(20366558)以外を【抽出】の解釈で合っております。
ご教授いただいたコードで試してみました。
しかし、ソートはかかるのですが、何も抽出対象になっていません。。
試しに、="<>20366558"の部分を="<>aaa"としたところ、きちんとaaa以外が選択されました。
抽出対象が数値だと抽出できないなどはあるのでしょうか。
(ピノ) 2020/04/20(月) 15:56


 20366558 の書かれているセルに問題が有るのかな? 書式が文字列になっているとか・・・

 一度、真っ新なセルに 20366558 と書いてコピーして試してみれば

(ピンク) 2020/04/20(月) 19:13


ピンク様
コメントありがとうございます。
なるほどですね!!
確かにテキストデータをエクセルにしてるので、その時の設定がおかしいのかもです。。
確認してみます!
ありがとうございます!
(ピノ) 2020/04/20(月) 19:35

度々失礼します。
ピンク様にご教授いただいた通り、真っ新なセルに20366558に記載したところ、フィルタ掛けができました。
なので、やはりセルに問題があるようです…
ただその解決方法がわからず、教えてください。

下記の通り、テキスト(.txt)をエクセル(.xlsx)でカンマ区切りにして開いた後、
オートフィルタで20366558以外を抽出します。

テキストデータをエクセルで開くから、セルがおかしくなるのでしょうか。

ただ、元データはテキストデータでしか取れないので、
このような方法で開いた場合でもオートフィルター抽出をできるようにしたいです。
可能でしょうか

試しに、テキストデータをエクセルで開いた際、
AF列にエラーインジケータが出るので、無視する設定にしましたが、
やはりフィルター抽出できませんでした。

このようなケースでも、オートフィルター抽出が可能になる構文ご存じでしたら教えてください。

Sub データ整備()

  'エラー回避(受注がなかった場合エラーになる為)
 ' On Error Resume Next

    'テキストデータをエクセル形式にして開く
    Workbooks.OpenText Filename:= _
        "C:\Users\YK\Desktop\C060種まきL(店別明細リスト)作成作業の自動化(ina惣菜・寿司、カノ)\店別データ.txt" _
        , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 2), _
        Array(9, 2), Array(10, 1), Array(11, 2), Array(12, 1), Array(13, 2), Array(14, 2), Array(15 _
        , 2), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
        Array(22, 1), Array(23, 1), Array(24, 2), Array(25, 2), Array(26, 1), Array(27, 1), Array( _
        28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 2), Array(33, 1), Array(34, 1), _
        Array(35, 1)), TrailingMinusNumbers:=True

    '確認ダイアログボックスを非表示にする。(削除しますか?など)
   Application.DisplayAlerts = False

             With ActiveSheet
            .AutoFilterMode = False
            .Range("A:AH").AutoFilter Field:=32, Criteria1:="<>20366558"
        End With

End sub

(ピノ) 2020/04/20(月) 22:13


 >Array(32, 2)
  ↓
 Array(32, 1)

 ???
 00366558 とかあるのか知らんけど。
(BJ) 2020/04/20(月) 22:21

BJ様
ありがとうございます。
テキストを開くときにarray(●,1)と設定することで、文字列→標準になるんですね!!
勉強になりました。
そして標準にすることで、フィルタ抽出ができました。
ありがとうございます・本当に助かりました。
(ピノ) 2020/04/20(月) 23:03

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.