下面的代码被编写为随机样本生成器的一部分。根据出现的总数,它计算样本大小并将总体减少到样本大小。现在我通过删除总数和样本大小之间的差异来做到这一点。我想看看是否有更好的方法来解决这个问题。我在用户定义的列中获取每个值的示例并使用大型数据集,因此采样最终需要花费几分钟的时间。删除行循环优化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