| 
    
     |  | ▼kanabun さん: >AutoFilterで、複数列(4列目と6列目)を抽出コピーだと、
 >4列目をAutoFilterかけて転記してから、いったん.AutoFilter解除して、
 >改めて 6列目にフィルタかけ、最初に転記したデータのあとに追加する
 >ということになり、手間が増えるので、
 >
 >同じフィルタでもフィルタオプションによる抽出コピーのほうが
 >簡単で速そうです。
 >
 >Private Sub CommandButton110_Click()
 >  Dim ss As String
 >  Dim fRange As Range
 >  Dim cRange As Range
 >  Dim CopyTo As Range
 >  Dim s1 As String, s2 As String
 >
 >  ss = TextBox76.Text
 >  ss = "*" & ss & "*"
 >  With Worksheets("DATA")
 >    Set fRange = .Range("A1").CurrentRegion 'フィルタ範囲
 >    Set cRange = .Range("AA1") '抽出条件範囲先頭セル
 >    s1 = .Range("D1").Value   'D列見出し
 >    s2 = .Range("F1").Value   'F列見出し
 >  End With
 >  If WorksheetFunction.CountIf(fRange.Columns("D:F"), ss) > 0 Then
 >     Set CopyTo = Worksheets("WAREA")
 >     CopyTo.Parent.UsedRange.ClearContents
 >     'cRange に抽出条件をセット
 >     cRange.CurrentRegion.ClearContents
 >     cRange(1, 1).Value = s1
 >     cRange(1, 2).Value = s2
 >     cRange(2, 1).Value = "'=" & ss
 >     cRange(3, 2).Value = "'=" & ss
 >     'フィルタオプションによる抽出コピーの実行
 >     fRange.AdvancedFilter xlFilterCopy, _
 >       CriteriaRange:=cRange.CurrentRegion, _
 >        CopyToRange:=CopyTo
 >  End If
 >
 >End Sub
 
 返事が遅れすいませんです。風邪で昨日まで休みを取っていました。
 
 Private Sub CommandButton110_Click()
 Dim ss As String
 Dim fRange As Range
 Dim cRange As Range
 Dim CopyTo As Range
 Dim s1 As String, s2 As String
 
 ss = TextBox76.Text
 ss = "*" & ss & "*"
 With Worksheets("DATA")
 Set fRange = .Range("A1").CurrentRegion 'フィルタ範囲
 Set cRange = .Range("AA1") '抽出条件範囲先頭セル
 s1 = .Range("D1").Value   'D列見出し
 s2 = .Range("F1").Value   'F列見出し
 End With
 If WorksheetFunction.CountIf(fRange.Columns("D:F"), ss) > 0 Then
 Set CopyTo = Worksheets("WAREA")
 CopyTo.Parent.UsedRange.ClearContents
 'cRange に抽出条件をセット
 cRange.CurrentRegion.ClearContents
 cRange(1, 1).Value = s1
 cRange(1, 2).Value = s2
 cRange(2, 1).Value = "'=" & ss
 cRange(3, 2).Value = "'=" & ss
 'フィルタオプションによる抽出コピーの実行
 fRange.AdvancedFilter xlFilterCopy, _
 CriteriaRange:=cRange.CurrentRegion, _
 CopyToRange:=CopyTo
 End If
 
 End Sub
 
 ご指導、ありがとうございます。
 また。複数行検索するには単純に
 s1 = .Range("D1").Value   'D列見出し
 s2 = .Range("F1").Value   'F列見出し
 End With
 If WorksheetFunction.CountIf(fRange.Columns("D:F"), ss) > 0 Then
 
 の部分でD1、F1、・・(”D:F:・・・)と増やすだけでよろしいでしょうか?
 お礼が質問になってしまいましたがよろしくお願いします。
 
 |  |