VBA投掷'其他没有'如果'错误
我正在尝试下面的代码,并重复抛出“如果没有,如果”等类似的错误。 我只是不知道错误在哪里,因为每个if都被正确终止。
这里是代码:
Sub hra_macro() Dim city As Boolean Dim salary As Integer Dim varHRA As Integer Dim mimHRA As Integer Dim maxHRA As Integer Dim A As Integer Dim B As Integer Dim Rent As Integer city = Range("b1").Value salary = Range("b2").Value Rent = Range("b3").Value If city = True Then varHRA = 0 A = Rent - (salary / 10) B = salary * 0.5 Do While varHRA < salary varHRA = varHRA + 1 If (varHRA < A And varHRA < B) Then minHRA = varHRA End If If (A < varHRA And A < B) Then minHRA = A End If If (B < varHRA And B < A) Then minHRA = B End If If minHRA > maxHRA Then maxHRA = minHRA End If Exit Do Else '<<<<<<<<<<<<<<<<<<<< PROBLEM AREA varHRA = 0 A = Rent - (salary / 10) B = salary * 0.4 Do While varHRA < salary varHRA = varHRA + 1 If (varHRA < A And varHRA < B) Then minHRA = varHRA End If If (A < varHRA And A < B) Then minHRA = A End If If (B < varHRA And B < A) Then minHRA = B End If If minHRA > maxHRA Then maxHRA = minHRA End If Exit Do End If Range("b4").Value = maxHRA End Sub
乍一看, If
我看起来不错,但是我注意到两个都缺lessLoop
。
它应该是这样的:
Do While varHRA < salary 'Do Stuff Loop
Exit Do
用于在While
为true之前退出循环,但始终需要Loop
关键字。
如果问题仍然存在,请发布确切的错误信息。
编辑:
我只是试图重现您的问题,在MS Access中的VBA(我没有在这台机器上安装Excel,只有Access):
Public Function Test() If 1 = 0 Then Do While 1 = 0 Stop Exit Do Else Stop End If End Function
这段简单的代码给了我一样的错误信息:
编译错误:否则无If
当我用Loop
replaceExit Do
,错误消失,编译代码。
所以,你应该在你的代码中replaceExit Do
by Loop
。
看起来像使用“退出”而不是“循环”。 “退出”将退出Do循环,这是你想要这样做的方式吗?