【发布时间】:2014-12-08 23:55:25
【问题描述】:
我编写的代码适用于我测试过的所有方式。我有两个问题。首先,为什么我必须在我的代码中使用 Do While 循环而不是 For 循环?我已经搜索了所有可以帮助我解决这个问题的地方。我无法重新安装 excel,但我已经尽可能多地重置了设置,但是,编译器总是跳过我拥有的每个 for 循环,而不是 for each 循环......除了第一个 for 循环在我的编程中......这是我见过的最奇怪和最离奇的行为。我已经使用单步执行 (F8) 10000 次来尝试找出它为什么一直跳过。但是每次我创建一个 for 循环时,它甚至都不会运行它的第一行。
明确地说,我有一个 Do While ... 循环的每个地方,它应该是一个 For Next。但是每次进行此更改都会破坏代码,因为 do while 更改为 for 的每个位置,都将完全跳过代码。即使我将 i 值重置为 0。即使每个循环都有不同的迭代器,也会出现问题。
在装有 Office 2010 的 Intel i5 上运行 w8。
For i=1 To i = 100
If (i >= startRow And i <= stopRow And Not rowDone(i) And Not i = colFocus) Then
colCurPayAmounts(i) = S_Debt.Cells(i, 5)
Else
colCurPayAmounts(i) = 0
End If i = i + 1
Next i
【问题讨论】:
-
想举一个没有运行的
For...Next循环的例子吗? -
提示 - 删除所有与问题无关的文本。您的经历或睡眠不足与我们能否帮助您无关,也不会帮助下一个遇到同样问题并登上您职位的人。如@Rory 提到的,您如何尝试使用
For循环而不使用Each的示例是更重要的信息。 -
你的故事太长了,所以我认为没有多少人愿意阅读并尝试提供帮助。你可以从删除第一段开始
-
@Rory 是的,我看到的问题是:
For i=1 To i = 100 If (i >= startRow And i <= stopRow And Not rowDone(i) And Not i = colFocus) Then colCurPayAmounts(i) = S_Debt.Cells(i, 5) Else colCurPayAmounts(i) = 0 End If i = i + 1 Next i从 Do While i -
问题是它应该是
For i = 1 To 100而不是For i = 1 To i = 100
标签: algorithm vba excel for-loop excel-2010