如果我的变量之一大于给定值,则尝试提示excel进入另一个嵌套循环。但是,在尝试编译时,出现“ End If Without block if”错误。
我尝试将“ Endif”放置在“ next m”之后,但没有成功。我尝试了其他一些不使用“ if”的解决方法;但是,if语句对于我尝试编写的代码似乎是不可避免的。
For i = 1 To 4000000
r = x + y
Worksheets("sheet1").Cells(Z, 1).Value = r
Z = Z + 1
x = r + y
Worksheets("sheet1").Cells(Z, 1).Value = x
Z = Z + 1
y = r + x
Worksheets("Sheet1").Cells(Z, 1).Value = y
Z = Z + 1
If Z > 499 Then For m = 1 To 501
e = 1
d = Worksheets("sheet1").Cells(e, 1).Value Mod 2
If d = 1 Then Worksheets("sheet1").Cells(e, 1).ClearContents
e = e + 1
If e > 500 Then Range(q, 1) = "=Sum(A1:A500)" And Z = 1 And q = q + 1
Next m
End If
Next i
答案 0 :(得分:0)
如果您在输入Then
关键字后没有按 ENTER ,则您没有If...End If
块,而是If
声明-像这样:
If True Then DoSomethingConditional
DoSomethingConditional
可以是很多东西,但是For...Next
block 不能!
将其更改为If...End If
块:
If True Then
DoSomethingConditional
End If
现在DoSomethingConditional
可以是您想要的任何东西:
If Z > 499 Then
For m = 1 To 501
'...
Next
End If
请注意,consistent indentation如何清楚地说明一个块的起始位置,结束位置,内部内容以及其嵌套深度。
经验法则,为了保持一致性和可维护性,避免使用If
语句,并始终使用正确缩进的If...End If
是一个好主意(在花括号语言中,这类似于将花括号始终放在条件范围内,即使它只是一个语句,并且花括号是可选的。
这意味着该指令:If d = 1 Then Worksheets("sheet1").Cells(e, 1).ClearContents
变为:
If d = 1 Then
Worksheets("sheet1").Cells(e, 1).ClearContents
End If