オートフィルタで「・・で始まる」数値の抽出方法
VBAでオートフィルタを使用して「95」から始まるデータを抽出して、そのデータを1行目の項目行を省いて別シートの最終行に貼り付けするマクロを作成していますが、上手くいかない部分があり困っています。
オートフィルタはセルに入っている値が数値データの場合は「○○で始まる」検索オプションが使えない仕様とのことです。
https://support.microsoft.com/ja-jp/kb/170230
数字をテキスト形式に変換すれば文字列として扱われるので、上記の検索オプションが使えるとのことで数値が入った列を全て文字列にしようとしましたが、上手くいきません。
下記のコードが一部抜粋のコードで、A列にオートフィルタで抽出したい5桁の数値が入っているとします。
元シート(移動先シートも同じような構成でデータが入っている)
A B C D E
ID 品名 単価 数量 金額
92153 りんご 100 10 1000
95235 ばなな 150 15 2250
95589 みかん 50 20 1000
87896 ぶどう 200 7 1400
Dim LastRow As Long, mySt(1) As Worksheet
ActiveWorkbook.Worksheets("元シート").Activate
Set mySt(0) = Worksheets("元シート")
Set mySt(1) = Worksheets("移動先シート")
Columns("A:A").Select
Selection.NumberFormatLocal = "@" '←選択列を文字列にしようとしたが上手くいかず
With mySt(0)
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
With .Range(.Rows(1), .Rows(LastRow))
.AutoFilter Field:=1, Criteria1:="95*", Operator:=xlAnd
With .SpecialCells(xlCellTypeVisible)
.Copy mySt(1).Rows(1)
End With
End With
End With
また、オートフィルタで抽出したデータをコピーして、既にデータが入っている移動先シートの最終行に貼り付けたいのですが、上手くいかず、2行目に貼り付けられてしまいます。
移動先シートの最終行の取得と貼付け方法が検索してもよく分からず困っています。
2点につきまして、分かる方がいましたら教えて頂けますと助かります。
よろしくお願いいたします。
お礼
mu2011さん 早速のご回答どうもありがとうございます! 早速やってみたところ、きちんと表示されました。 とても助かりました! どうもありがとうございました♪