2017-06-12 17 views
1

colからまたがるフィルタリングされたデータのダイナミックレンジを選択しようとしています。 A:col。 J(行1)のヘッダを選択せず​​に。そこからコピーして新しいシートに貼り付けて、それをさらに操作する必要がありますが、効率的または機能的な方法でこれを行うことはできません。私が別のフォーラムで見つけたいくつかのコードに基づいて、私は単一の列ですべての「可視セル」を選択することができましたが、全体の範囲を選択しようとする問題にぶち当たっています。私はまだvbaには非常に新しいので、私の構文を許していますが、私のコードは、整数1-10だったRows.Countと私を介してiterateしようとしました。これをより効率的に、より効率的に行うためのアドバイスがありましたら、本当に感謝しています。VBAで動的フィルタリングされた範囲を選択する

Sub SelectVisibleInColD() 
    Dim lRow As Long, i As Integer 
    Set i = 1 
Do While i <= 10 

    With ActiveSheet 
     lRow = .Cells(.Rows.Count, i).End(xlUp).Row 
     If lRow < 3 Then Exit Sub 
     .Cells(1, 1).Offset(1, 0).Resize(lRow - 1).SpecialCells(xlCellTypeVisible).Select 
    End With 

i = i + 1 
Loop 
End Sub 

答えて

2

あなたはActiveSheetRangeプロパティを使用して範囲を選択することができます。 、使用することをあなたはすでに最後の行を持っていて、ヘッダーが最初の行にあることを知っているので、あなたの範囲が位置A2から始まり、あなたがこの範囲をコピーする場合は、列J

ActiveSheet.Range("A2:J"&lRow).SpecialCells(xlCellTypeVisible) 

の最後の行に行きます

yourRangeAsAbove.Copy 

ようCopy関数この関数は、それを貼り付けるあなたの目的地の範囲を構築し、PasteSpecial機能を呼び出すために、メモリに選択範囲を移動します。

+0

ご協力いただきありがとうございます。 – accortdr

関連する問題