[英]Selecting dynamic, filtered range in VBA
我正在嘗試選擇一個從col跨越的動態范圍的過濾數據。 答:上校。 J而不選擇標題(在第1行中)。 從那里我需要將其復制並粘貼到新的工作表中,在這里我將對其進行進一步的操作,但是我無法提出一種有效或實用的方法來執行此操作。 根據我在另一個論壇上找到的一些代碼,我能夠在一列中選擇所有“可見單元格”,但是在嘗試選擇整個范圍時遇到了問題。 我對vba還是很陌生,所以請原諒我的語法,但是下面發布的代碼是嘗試通過Rows.Count和i進行編程的操作,該整數是1-10。 如果您對如何更好,更有效地執行此操作有任何建議,我將不勝感激。
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
您可以使用ActiveSheet
Range
屬性來選擇范圍。 您已經有了最后一行,並且知道標題在第一行中,因此您的范圍從位置A2
開始,一直到列J
的最后一行
ActiveSheet.Range("A2:J"&lRow).SpecialCells(xlCellTypeVisible)
如果要復制此范圍,請使用“ Copy
功能
yourRangeAsAbove.Copy
此函數僅將所選內容移至內存,進行粘貼,構建目標范圍並調用PasteSpecial
函數。
我遇到了這個問題,搜索了我的問題:在vba中刪除過濾的選擇。 但是,嘗試您的答案&lRow會給我一個運行時錯誤1004,應用程序定義的錯誤或對象定義的錯誤
我通過此ActiveSheet.Range(“ A2:G”& Range(“ A”&Rows.Count).End(xlUp).Row) .SpecialCells(xlCellTypeVisible).Delete來解決它。
對於那些也可能會遇到相同問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.