永发信息网

VBA问题求教,为什么会提示Next没有for

答案:2  悬赏:70  手机版
解决时间 2021-11-10 12:17
  • 提问者网友:最美的风景
  • 2021-11-10 09:24
VBA问题求教,为什么会提示Next没有for
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-11-10 10:24
If与End If不匹配,在End If下面再加上两个End If,即改成如下:
Sub 生成战斗数据()
For i = 1 To 9
If i < 4 Then
If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
ElseIf i > 6 Then
If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
End If
End If
End If
'--------------生成随机属性和倾向-------------
Call 属性随机练习
Call 倾向随机练习
R = 2 * i + 1
Sheet1.Cells(5, R) = 属性
Sheet1.Cells(6, R) = 倾向
Next
End Sub追问大神你好,为什么要写3个End If啊,不是只有一个if语句吗追答我把代码整理一下,刚刚没有排版:
Sub 生成战斗数据()
For i = 1 To 9
If i < 4 Then
If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
ElseIf i > 6 Then
If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
End If
End If
End If
'--------------生成随机属性和倾向-------------
Call 属性随机练习
Call 倾向随机练习
R = 2 * i + 1
Sheet1.Cells(5, R) = 属性
Sheet1.Cells(6, R) = 倾向
Next
End Sub
你看代码对应就明白了,代码中有几个If嵌套,就是If里面又出现了If,并且有If...ElseIf...语句,要小心留意相应的End If与之对应!
全部回答
  • 1楼网友:大漠
  • 2021-11-10 11:25
原因是缺少一个end if结束语句。追问我是新人,刚开始练习,请问要加在哪里?
如下:这里不是已经有 end if 了吗,为什么还会缺呢

ElseIf i > 6 Then
If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
End If追答Sub 生成战斗数据()

For i = 1 To 9

If i < 4 Then

If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"

Exit Sub

ElseIf i > 6 Then

If Sheet1.Cells(4, 2 * i + 1) = "" Then
MsgBox "没有输入等级"
Exit Sub
End If
End If
End If

'--------------生成随机属性和倾向-------------

Call 属性随机练习
Call 倾向随机练习

R = 2 * i + 1
Sheet1.Cells(5, R) = 属性
Sheet1.Cells(6, R) = 倾向

Next

End Sub追问只能选一个最佳,谢谢大神的指点
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯