【发布时间】:2019-10-16 19:54:42
【问题描述】:
我想要一个 Excel VBA For Loop,它的运行时间比我最初计划的要长。例如:
Sub Test()
LR = 10
For i = 1 To LR
Cells(i, 1).Value = 1
If Cells(i, 2).Value <> "" Then
LR = LR + 1
End If
Next i
End Sub
假设第 2/B 列中有内容,我希望在每次迭代时为 LR 添加 1。我希望这个循环继续到第 20 行。它在第 10 行停止,这是最初声明的内容。如果我需要根据条件扩展它,我该如何解决这个问题,并让循环更长?
【问题讨论】:
-
为什么要这样做?你能解释一下你的用例是什么/你真正想要做什么吗?
-
一旦设置for循环结束就不能改变了。
-
您需要更改为 Do While 或 Do Until 循环
-
注意 - 如果
LR实际上在 for 循环中被更改,那么你的循环将是一个无限循环,它不会在第 20 行停止。但正如已经指出的那样,这听起来像一个X-Y 问题,我们需要更多关于您实际尝试做什么的详细信息。 -
@ScottCraner 感谢您澄清我需要使用 Do While 或 Unitl 循环。我可以在循环内修改 LR 是有道理的,但显然这不起作用。根据您的建议,我能够完成任务。谢谢你的建议。