またまたお世話になります><
オートフィルタ後、可視セルの特定列のみを処理したいです。
自作のコードだと抽出後、可視セルのみではなく検索が引っかかったセルから下まで全て処理されてしまいます…。※else以降の処理です。
例えば可視セルのB列のみ文字列を変えたい場合、どうしたらいいのでしょうか…?
ちなみに対象シートは2万行ほどあります。
.Range("A1").AutoFilter 2, "田中"
If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
.Range("A1").AutoFilter
Else
.Range(Range("B2"), Range("B" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible) = "佐藤"
Range("A1").AutoFilter
End If
No.4ベストアンサー
- 回答日時:
No.2・3です。
>実際の文字列だと「・・・」「ー」が含まれており・・・
B列セル内の「田中」の部分を「佐藤」に置換すれば良いのですかね?
そうであれば
.Range("B:B").Replace what:="田中", replacement:="左藤", lookat:=xlPart
になるだけですが、
そのセル全体(他の文字列も消去し「佐藤」だけにしたい!)という場合であれば
1セルずつ検索する必要があると思います。
データは約2万程度あるというコトなので、単にループさせるだけでは相当時間を要してしまうと思いますので、
配列等で処理した方が良いかも・・・m(_ _)m
早速ご返信ありがとうございます(*'▽')
配列は苦手なもので、ループで処理したら出来ました!w
お知恵をお貸しいただきありがとうございました!
No.5
- 回答日時:
No1です。
>処理されなったものの文字列に「・・・」や「ー」が含まれるからだと思うのですが
ご提示のコードでもそうですが、(明示するしないとは別に)意味合いとして lookat:=xlWhole となっているので、セル内の文字と完全一致で検索しています。
部分一致で検索なさりたいのなら、lookat:=Xlpart などにすれば良いでしょう。
ただし、『山田中人』や『大田中 正人』のようなものも引っかかるようになりますのでご注意。
「完全一致/部分一致」のように単純ではなく、複雑な条件で検索なさりたいような場合は、対象範囲をループして検索するような方法になると思われます。
またまたありがとうございます(^^)/
今回は完全一致で処理したかったので、オートフィルタ後ループで処理したら何とか出来ました!
前回に引き続き、本当にありがとうございました!!
No.2
- 回答日時:
こんにちは!
コードを拝見すると、B列が「田中」の場合「佐藤」にすればよい!ということですかね。
データは2万行程度あるというコトなので、オートフィルタを使わず置換をしてみてはどうでしょうか?
何のオブジェクトに対するWithステートメントか不明ですが・・・
>.Range("B:B").Replace what:="田中", replacement:="左藤", lookat:=xlWhole
の1行だけでいけるような気がします。m(_ _)m
はじめまして!ご回答ありがとうございます~!
そうなんです!B列が「田中」の場合「佐藤」にしたいのですが…。
実際の文字列だと「・・・」「ー」が含まれており、Replaceメソッドだと正しく動いてくれないのです( ノД`)
なのでオートフィルタでやればいいかなと思うのですが、私の未熟なコードだと「田中」じゃないものまで全て「佐藤」になってしまうのです。
他に良い案が思いついたら、ご教示いただけたら喜びます!
ありがとうございました。
No.1
- 回答日時:
こんにちは
with構文の中と思われるので、省略されているオブジェクトが何なのか不明ですが…
>.Range("A1").AutoFilter 2, "田中"
フィルタの範囲をキチンと指定してあげれば良さそうに思います。
仮に、withのオブジェクトが例えばシート等だとすれば、
.Range("A1:B20000").AutoFilter 2, "田中"
などにしておけば良いのでは?
一方で、全体の雰囲気として、「田中」を「佐藤」に変えたいのかと思いますが、わざわざフィルタを用いなくても
.Columns(2).Replace What:="田中", Replacement:="佐藤", LookAt:=xlWhole
の1行で済んでしまいそうな気もしますけれど・・・?
(上記では1行目もt対象に含まれてしまっていますが)
fujillinさま
前回に引き続き、ありがとうございます(´ω`*)
お察しの通り、withオブジェクトで省略したものはシート名です。
そして、補足になりますが、Replaceメソッドを使用した結果、適切に処理されるものとされないものがあり…。実際、処理されなったものの文字列に「・・・」や「ー」が含まれるからだと思うのですが><
なので処理されなかったものを、オートフィルタでやってみようと思った次第です。
そこで、ご指摘の通りフィルタの指定をしてみても、思うように動作しません。検索が引っかかったところから下の行全て、同じ「佐藤」になってしまいます(´;ω;`)ウッ…
そもそもなぜReplaceが適切に動いてくれないのか謎ですが…
また何か思いついたらご教示いただければ嬉しいです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) 【至急】Excel 同一人物の情報を一行にまとめる(複数行) 6 2022/05/24 17:58
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
【Excel VBA】一番右端セルまで...
-
エクセルVBA 配列からセルに「...
-
VBA:日付を配列に入れ別セルに...
-
Excelで空白セル直前のセルデー...
-
特定の色のついたセルを削除
-
Excel UserForm の表示位置
-
【VBA】【ユーザーフォーム_Lis...
-
Excel VBAで特定の範囲の空白セ...
-
CellEnterイベント仕様について
-
VBA チェックボックスで
-
Excel 範囲指定スクショについ...
-
エクセルのカーソルを非表示に...
-
マクロ初心者です。 マクロで範...
-
Excel-VBA セルのデータ書出し(Q2)
-
【VB.NET】ファイルダイアログ...
-
【Excel VBA】マクロで書き込ん...
-
EXCEL VBA 文中の書式ごと複写...
-
昨日、質問した件『VBA にて、...
-
エクセル、マクロで番号を読込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【VBA】【ユーザーフォーム_Lis...
-
特定の色のついたセルを削除
-
CellEnterイベント仕様について
-
VBA:日付を配列に入れ別セルに...
-
Excel VBAでCheckboxの名前を変...
-
【Excel VBA】一番右端セルまで...
-
エクセルのカーソルを非表示に...
-
EXCEL VBA 文中の書式ごと複写...
-
DataGridViewでグリッド内に線...
-
下記のマクロの説明(意味)を...
-
C# DataGridViewで複数選択した...
-
Excel 範囲指定スクショについ...
-
【VBA】写真の貼り付けコードが...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
Excel VBAで特定の範囲の空白セ...
おすすめ情報