|
データの詳細が無かったので、コード読んでません。
オートフィルタ使用例1という事で...。
ただコードだけ記載するのもなんなので、Sheet1に例題表を作ってから
オートフィルタした範囲を実行すればある程度の事は理解できるんじゃないかと思います。
(End Subのbが抜けていたので修正とともに少し別な書き方を追加。)
Sub 例題準備()
TB = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")
Range("C4").Resize(, UBound(TB) + 1).Value = TB
Range("C5").Value = 1
Range("C5").AutoFill Destination:=Range("C5:C13"), Type:=xlFillSeries
Range("C5:C13").AutoFill Destination:=Range("C5:K13"), Type:=xlFillDefault
Range("C5:L13").Copy
For i = 1 To 3
Range("C65536").End(xlUp).Offset(1).PasteSpecial
Next
End Sub
Sub オートフィルタした範囲()
Dim Cel As Range, Ct As Long
With Sheets("Sheet1")
'フィルタ解除
.AutoFilterMode = False
.Range("B4").AutoFilter Field:=1, Criteria1:="9"
With .AutoFilter.Range
MsgBox "項目を含むオートフィルタ全範囲" & vbLf & .Address
With .Resize(.Rows.Count - 1).Offset(1)
MsgBox "データ部範囲" & vbLf & .Address
If Application.Subtotal(3, .Columns(1)) = 0 Then
MsgBox "抽出データ無し。"
Exit Sub
End If
With .SpecialCells(xlCellTypeVisible)
.Select
MsgBox "抽出したデータ部選択"
For Each Cel In .Rows
Cel.Columns(3).Select
Ct = Ct + 1
MsgBox "抽出したセルの" & Ct & "行3列目、" & _
Cel.Columns(3).Address(0, 0) & "を選択。"
Next
End With
With .Columns(1).SpecialCells(xlCellTypeVisible)
.Select
MsgBox "抽出したセルの1列目を選択。"
For Each Cel In .Cells
Cel.Select
MsgBox Cel.Address
Next
End With
End With
End With
End With
End Sub
ついでにここ読んでおくと良いかも。
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=43413;id=excel
|
|