アプリ版:「スタンプのみでお礼する」機能のリリースについて

下図のようにオートフィルターで絞り込んだ後、
この「田中」を「佐藤」に変えたいと思っています。

フィルターで絞り込むところまでは作れましたが、
その後「田中」のセルを参照し、「佐藤」に編集する方法がわかりません。

置換という方法もありますが、今回はそれは使わず、
範囲選択しまとめて変更ということがしたいと思っています。

どのようにプログラムを組めばいいでしょうか?
回答よろしくお願い致します。

「Excel VBA オートフィルタ後、置」の質問画像

A 回答 (3件)

たびたびごめんなさい。



No.2のコードではオートフィルタモードになっていて、絞り込みがされていなくても
すべてのデータが「佐藤」に変わってしまいますので、
↓のコードにしてください。

Sub Sample3()
Dim i As Long, endRow As Long, myFlg As Boolean
endRow = Cells(Rows.Count, "B").End(xlUp).Row
For i = 4 To endRow
If Rows(i).Hidden = True Then
myFlg = True
Exit For
End If
Next i
If myFlg = True Then
Range(Cells(4, "B"), Cells(endRow, "B")).SpecialCells(xlCellTypeVisible) = "佐藤"
End If
End Sub

※ もっと簡単な方法があるかもしれませんが、
この程度で・・・m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
試してみたいと思います。ありがとうございました。

お礼日時:2013/11/01 17:17

No.1です。


前回は余計なお世話を焼いていたみたいですね。

>もともとフィルターをしてある設定で、・・・

とありますので、オートフィルタがかかっていて表示されているデータを「佐藤」に変えるようにしてみました。
すなわち、絞り込まれているデータが「田中」でなく他のデータでも「佐藤」に変わります。

Sub Sample2()
Dim endRow As Long
endRow = Cells(Rows.Count, "B").End(xlUp).Row
If ActiveSheet.AutoFilterMode = True Then
Range(Cells(4, "B"), Cells(endRow, "B")).SpecialCells(xlCellTypeVisible) = "佐藤"
End If
End Sub

今度はどうでしょうか?m(_ _)m
    • good
    • 0

こんにちは!



一例です。
画像通りに3行目が項目行・データは4行目以降にあるとして・・・

Sub Sample1()
Dim endRow As Long
endRow = Cells(Rows.Count, "B").End(xlUp).Row
With Range(Cells(4, "B"), Cells(endRow, "B"))
.AutoFilter field:=1, Criteria1:="田中"
.SpecialCells(xlCellTypeVisible) = "佐藤"
End With
ActiveSheet.AutoFilterMode = False
End Sub

こんな感じではどうでしょうか?m(_ _)m

この回答への補足

回答ありがとうございます。
私の説明不足で大変申し訳ないのですが、
もともとフィルターをしてある設定で、
絞込みが終わってもフィルターの解除はしません。

補足日時:2013/11/01 15:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!