2017-06-12 46 views
1

我正在嘗試選擇跨越列的過濾數據的動態範圍。答:col。 J不選擇標題(在第1行)。從那裏我需要將它複製並粘貼到新的工作表中,我將對其進行進一步處理,但我無法想出一種有效或實用的方法來實現此目的。根據我在另一個論壇上發現的一些代碼,我可以在單個列中選擇所有「可視單元格」,但我遇到了試圖選擇整個範圍的問題。我對vba仍然很陌生,所以原諒我的語法,但是我的代碼在下面發佈的是試圖通過Rows.Count和i進行迭代,這是一個1-10的整數。如果您對如何更好,更高效地做到這一點有任何建議,我會非常感激。在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) 

的最後一排,用Copy功能像

yourRangeAsAbove.Copy 

此功能僅移動選擇到內存中,將其粘貼,建立自己的目標範圍,並調用PasteSpecial功能。

+0

感謝您的幫助! – accortdr