Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22699 / 76738 ←次へ | 前へ→

【59417】Re:オートフィルターの繰り返し
お礼  フィルター  - 08/12/10(水) 16:48 -

引用なし
パスワード
   ▼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:・・・)と増やすだけでよろしいでしょうか?
お礼が質問になってしまいましたがよろしくお願いします。

0 hits

【59281】オートフィルターの繰り返し フィルター 08/12/4(木) 17:15 質問
【59282】Re:オートフィルターの繰り返し kanabun 08/12/4(木) 17:20 発言
【59284】Re:オートフィルターの繰り返し kanabun 08/12/4(木) 20:00 発言
【59417】Re:オートフィルターの繰り返し フィルター 08/12/10(水) 16:48 お礼
【59447】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 15:29 質問
【59452】Re:オートフィルターの繰り返し kanabun 08/12/11(木) 17:24 発言
【59454】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 17:45 お礼
【59455】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 18:53 質問
【59484】Re:オートフィルターの繰り返し pico 08/12/12(金) 22:17 発言
【59485】Re:オートフィルターの繰り返し かみちゃん 08/12/12(金) 22:40 発言
【59490】Re:オートフィルターの繰り返し kanabun 08/12/13(土) 9:54 発言
【59497】Re:オートフィルターの繰り返し pico 08/12/13(土) 20:28 発言

22699 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free