[[20120604111608]] 『フィルタで抽出したセルに値を入力するマクロ』(OKM) ページの最後に飛ぶ

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

 

『フィルタで抽出したセルに値を入力するマクロ』(OKM)

 特定列をオートフィルタで抽出している状態で実行し
 別の列の抽出されているセルに値を入力するマクロはどのような構文になるでしょうか

 例
 A列の項目名でフィルタを掛け絞っている状態でマクロを実行し、表示されている行のB列のセルに"済"と入力する

 ご教示よろしくお願い致します。

 Sub test20120604()
     Dim myR As Long, myC As Long
     With Worksheets("Sheet1")
         If .AutoFilterMode Then
             If .AutoFilter.Filters(1).On Then
                 myR = .AutoFilter.Range.Rows.Count
                 myC = .AutoFilter.Range.Cells(2).Column
                 .Range(Cells(2, myC), Cells(myR, myC)).SpecialCells(xlCellTypeVisible).Value = "済"
             End If
         End If
     End With
 End Sub

オートフィルタ1列目を絞り込みしている場合に、
2列目可視セルにデータ入力処理する仕様です。
(みやほりん)(-_∂)b


 みやほりん様
 望み通りのマクロができました!ありがとうございました。
 (OKM)

 解決後だけどオートフィルターで絞り込んだ行にだけ何かをする場合、SpecialCells(xlCellTypeVisible).Value は不要。

 事前の設定チェックを割愛して値のセットだけを書くと

 Sub Sample()
    Sheets("Sheet1").AutoFilter.Range.Columns("B").Value = "済"
 End Sub

 (ぶらっと)

なるほど〜。
AutoFilterのRangeプロパティだと可視セルだけの処理になるんですね。

(みやほりん)


 >AutoFilterのRangeプロパティだと
 普通にしても、可視セルだけになりませんか?

 >.Range(Cells(2, myC), Cells(myR, myC)).Value = "済"
 と書いた時に、どのセルに「済」が入るか?
 って事ですよね?・・・可視セルだけに入ります。

 焦点がずれてたら すみません。

 (HANA)

 To HANA さん

 私がいいたかったことも可視セルというポイントです。
 でも、いわれて、私がアップしたコード(領域をAutoFilter.Range で手抜き指定)をあらためて眺め直したら
 当然可視セルである、タイトル行にも値がはいってしまいますね。OffSet と Resizeを加えなきゃ。

 でも、ポイントは、可視セルということでした。

 (ぶらっと) 

コメント返信:

[ 一覧(最新更新順) ]


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