VBA否则没有,如果错误

在VBA中,如果我没有这个问题,我会一直得到“如果没有”。 有谁知道如何修理它? 这需要我elseif语句开始elseif memb =“platinum”下面是我的代码:

ElseIf memb = "Platinum" Then d = 0.01 ElseIf memb = "Black" Then d = 0.03 End If If st >= min Then cb = st * d Else cb = 0 End If If cb >= thresh Then MsgBox ("cb is greater than thresh") End If tac = st + cb Range("B5").Value = st Range("B7").Value = cb Range("B9").Value = tac 

我会假设你的第一个If语句是这样的:

 If memb = "Gold" Then d = 0.005 ElseIf memb = "Platinum" Then d = 0.01 ElseIf memb = "Black" Then d = 0.03 End If 

如果在与Then关键字相同的行上执行某些处理,则VBA将其视为单个非嵌套的If语句。 这意味着之后的任何事情都将被视为一个新的陈述,并且不涉及事先的陈述。

你可以做的是把处理语句放在每个If-ThenElseIf-Then语句之后的下一行。

例,

 If memb = "Gold" Then d = 0.005 ElseIf memb = "Platinum" Then d = 0.01 ElseIf memb = "Black" Then d = 0.03 End If 

考虑到这一点,您可能需要在代码中修复后续的If-Then-Else语句。 如果你的If-Then-Else在一行中, End If部分变得毫无意义。

你的代码似乎有语法错误,错误信息告诉你。 或者你没有发布所有的代码?

看看MS文档: https : //msdn.microsoft.com/de-de/library/752y8abs.aspx

你真的坚持语法吗?

甚至没有MS OFFICE这应该(更好的可读性)工作:

 If memb = "Platinum" Then d = 0.01 ElseIf memb = "Black" Then d = 0.03 End If If st >= min Then cb = st * d Else cb = 0 End If If cb >= thresh Then MsgBox ("cb is greater than thresh") End If tac = st + cb Range("B5").Value = st Range("B7").Value = cb Range("B9").Value = tac