0

テーブルを別のスプレッドシートにコピーする VBA マクロがあります。ドリルダウンする必要が頻繁にあるため、このテーブルにはフィルターがあり、行をフィルター処理したままにしておくことがよくあります。フィルタによって選択された行だけでなく、テーブル内のすべての行をマクロで確実にコピーするにはどうすればよいですか?

現時点で私はこれをやっています:

Private Sub PopulateTab(SourceRange As Range, TargetRange As Range)

  SourceRange.Copy

  With TargetRange
    .PasteSpecial Paste:=xlPasteAll
    .PasteSpecial Paste:=xlPasteColumnWidths
    .PasteSpecial Paste:=xlPasteValues
  End With

End Sub

範囲全体ではなく、フィルターによって選択された行のみをコピーします。

4

2 に答える 2

0

私自身の質問に答えるには:最初に範囲のフィルタリングを解除します:

Sub Unfilter(Sheet As Worksheet)

  Dim Fltr As Filter
  Dim iFiltr As Long

  With Sheet.AutoFilter
    For iFiltr = 1 To .Filters.Count
        If .Filters(iFiltr).On Then
            .Range.AutoFilter Field:=iFiltr
        End If
    Next iFiltr
  End With

End Sub

すべてをフィルタリングしないままにしておく必要がないため、フィルタの選択を保存しません。

于 2013-01-10T11:09:05.580 に答える