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
原因是缺少一个end if结束语句。