[[20041020112557]] 『フィルター抽出した行番号の取得』(kobi) ページの最後に飛ぶ

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

 

『フィルター抽出した行番号の取得』(kobi)
 お世話になります。
フィルタ抽出したデータの行番号を取得したいのですが・・・
抽出した行番号を、シート"抽出2"のA10セル以下に表示するのに、
以下の構文では、1行しか表示になりません。
こういうばやい、どうするのか教えてください。  (XP.2002)
’***************************
Range("a14").CurrentRegion.Select    
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:=">=" & fstR, Operator:= _
        xlAnd, Criteria2:="<=" & lstR
    If Selection.Rows.Count < 3 Then   'データが無ければ
        Exit Sub
    Else                              'データがあれば
        r = 10
        For Each rg In Selection.Areas
            rno = Str(rg.Row)
            Sheets("抽出2").Range("A" & r).Value = Str(rg.Row)
            r = r + 1
        Next rg

 フィルタして、ctrl + shift + * で選択して コピー
 をマクロの記録しては?

  (INA)

 INAさん、ありがとうございます。
ctrl + shift + * でコピーは別のところでやってます。
やりたいことは、抽出したデータ(複数あります)を削除できるかを別なところで判断した後に、
削除できるものは削除、できないものはそのまま・・・にする必要があり、
削除する際にはその行番号を変数に取り込んで削除・・・としたいので、
抽出したデータの行番号をどっかに表示しておきたいんです。
方法がわからず、とほほ状態 (kobi)

 ちょっとこちらにあわせたけど、こんな感じでしょうか?
v(=∩_∩=)v
(SoulMan)
Sub 改定()
Dim r As Long
Dim rg As Range
Dim MyRng As Range
    With Worksheets("Sheet1")
        If .AutoFilterMode = True Then
        .AutoFilterMode = False
        End If
        .Range("A1").AutoFilter Field:=1, Criteria1:="あ1"
        With .AutoFilter.Range
        Set MyRng = .Columns(1).SpecialCells(xlCellTypeVisible)
            If MyRng.Cells.Count > 1 Then
            r = 10
                For Each rg In MyRng
                    If rg.Row <> 1 Then
                        Sheets("抽出2").Range("A" & r).Value = rg.Row
                        r = r + 1
                    End If
                Next rg
            End If
        End With
        .AutoFilterMode = False
    End With
Set MyRng = Nothing
End Sub

 SoulManさん、どうもでした。
出かけてまして遅くなりましたが、何とかできました。
またヨロピクお願いします。  (kobi)

コメント返信:

[ 一覧(最新更新順) ]


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