下面的代碼被編寫爲隨機樣本生成器的一部分。根據出現的總數,它計算樣本大小並將總體減少到樣本大小。現在我通過刪除總數和樣本大小之間的差異來做到這一點。我想看看是否有更好的方法來解決這個問題。我在用戶定義的列中獲取每個值的示例並使用大型數據集,因此採樣最終需要花費幾分鐘的時間。刪除行循環優化VBA
是否有辦法一次性刪除我需要的所有行數,而不必像下面的循環中一次一個一個地刪除它們,或者更好地完成此操作?謝謝!
x = (Population - SampleSize)
If Population > SampleSize Then
Do Until x = 0
Workbooks(SourceBook).Sheets(SampleSheet).Columns(StratCol) _
.Find(What:=SubPop, After:=Cells(SampRows, StratCol), LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).EntireRow.Delete
x = x - 1
Loop
End If
是的,有,但只有通過添加一個公式列[如何刪除Excel VBA中沒有循環的多行](http:// stackoverflow。com/questions/15431801/how-to-delete-multiple-rows-without-a-loop-in-excel-vba) - 請參閱我的答案以獲得可能的解決方案 – 2013-03-19 09:45:15
@ForrestA請參閱類似的主題。 http://support.microsoft.com/kb/15375054/vba-macro-to-delete-rows-quickly – 2013-03-19 12:03:58
是的,AUtoFilter /高級過濾器是另一個選項**沒有循環**其中SpecialCells不必使用 – 2013-03-19 12:26:01