我有这个:
For k = 1 to 100
Statement 1
Next
For j = 1 to 100
Statement 2
Next
For l = 1 to 100
Statement 3
Next
我想将所有三个语句放在一个单独的For ... Next
中For k = 1 to 100
Statement 1
Statement 2
Statement 3
Next
然而我不能,因为循环需要为每个语句顺序运行(语句1需要首先运行1到100的所有值,然后相同但是对于语句2等...) 。有没有办法简化这个?我相信一定有。谢谢!
答案 0 :(得分:1)
我拒绝这个问题的主旨。
你的第一个代码片段是一个更好的方法来做到这一点,而不是将所有内容整合到一个For...Next
循环强制馈送奇怪的条件。这会使事情变得更复杂,更不易读,并且保存几行可怜的代码并不是一个很好的借口。
更明确地回答您的问题:有没有办法简化这个?
在某种程度上,很难,因为您展示的代码非常简单。
但在一般情况下,任何复杂性都应分解为较小的部分,即程序。简化代码的唯一简洁方法是将循环打包到子过程中,以简化高级过程。
例如,您的高级过程如下所示:
Dim n As Long
n = 100
DoThing1 n
DoThing2 n
DoThing3 n
使用较低级别的程序:
Sub DoThing1(ByVal n As Long)
Dim i As Long
For i = 1 To n
Statement1
Next i
End Sub
和其他两个相似。
答案 1 :(得分:0)
For n=1 to 3
For k = 1 to 100
If n=1 Then Statement 1
If n=2 Then Statement 2
If n=3 Then Statement 3
Next
Next
但实际上你的第一个例子比较整洁,并且将所有语句放在一个循环中并不是简单的事情......