错误:没有否则,如果
问题描述:
我试图建立一个费用VS收入Excel和得到这个恼人的错误 “没有别的,如果” 我去不同的论坛等,但不能得到答案 - 这是驾驶我疯了错误:没有否则,如果
有点解释:我要过一张桌子,我有一张名为“数据”,如果我发现一个单元格不是空白或没有“0”我继续。第一个'为每个'是为类别,第二个是子类别 - 一旦我找到一个子类别我搜索我们在该子类别下的成本。我寻找他的名字在字符串CSheet中的月表中的成本 - 当我发现他们时,我将它们添加到计数器scSum中。
With Worksheets("Data") For Each Mcell In Worksheets("Data").Range(.Cells(CatRow, stCatCol), .Cells(CatRow, enCatCol)).Cells '("C1:X1") expenses scSum = 0 If Mcell.Value <> 0 Then If IsEmpty(Mcell.Value) Then Exit For Else For Each eScell In Worksheets("Data").Range(.Cells(CatRow + 1, Mcell.Column), .Cells(CatRow + noSubCat, Mcell.Column)).Cells 'run on sub category 'eScell - expence category cell If IsEmpty(eScell.Value) Then Exit For Else ***'error!*** subC = eScell.Value With Worksheets(CSheet) For Each eCcell In Worksheets(CSheet).Range(.Cells(ExpMonthStRow, ExpMonthSubCol), .Cells(MonthEndRow, ExpMonthSubCol)).Cells 'run in month and look for sub category expences 'eCcell - expence cost cell If IsEmpty(eCcell.Value) Then Exit For Else If eCcell.Value = subC Then scSum = scSum + Worksheets(CSheet).Cells(eCcell.row, ExpMonthSubCostCol) End If End If Next eCcell End With End If Next eScell End If 'incomes scSum = 0 End If Next Mcell End With
答
查找违规End If
最好的方法是Indent
你的代码。 :)
您可以通过以下方式编写IF-Endif
。
多个语句
If <Condition> Then
<Do Something>
Else
<Do Something Else>
End If
或
If <Condition1> Then
<Do Something>
ElseIf <Condition2> Then
<Do Something Else>
Else
<Do Something Else>
End If
单个语句
If <Condition> Then
<Do Something>
End If
上面的语句也可以在一行中写入
If <Condition> Then <Do Something>
在这种情况下,您不需要End If
。
上面的代码(在删除其他代码后进行演示)可以写成如下所示。我删除了额外的代码来说明我的意思。在下面的代码中,所有以*
开头的行都不是必需的。
If Mcell.Value <> 0 Then
If IsEmpty(Mcell.Value) Then Exit For
Else
If IsEmpty(eScell.Value) Then Exit For
*Else
If IsEmpty(eCcell.Value) Then Exit For
*Else
If eCcell.Value = subC Then
scSum = scSum + Worksheets(CSheet).Cells(eCcell.Row, ExpMonthSubCostCol)
End If
*End If
*End If
*End If
End If
+1为了澄清,你可能要改变“implitely”,这听起来象是粗鲁的,以“含蓄”。 –
感谢您的支持 – mucio