我在代码的以下部分中收到编译错误“Else without If”。有什么问题以及如何解决它?
If InStr(1, Worksheets("Raw data").Cells(i, 3), "1M") Then Call RowCopyPaste("AS-001", i, counter1M)
counter1M = counter1M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "2M") Then Call RowCopyPaste("AS-001", i, counter2M)
counter2M = counter2M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "3M") Then Call RowCopyPaste("AS-001", i, counter3M)
counter3M = counter3M + 1
End If
最佳答案
If 比较可以作为单个命令位于同一行,但不能像您正在执行的那样。您的每个条件两个命令应该类似于以下内容。
If InStr(1, Worksheets("Raw data").Cells(i, 3), "1M") Then
Call RowCopyPaste("AS-001", i, counter1M)
counter1M = counter1M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "2M") Then
Call RowCopyPaste("AS-001", i, counter2M)
counter2M = counter2M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "3M") Then
Call RowCopyPaste("AS-001", i, counter3M)
counter3M = counter3M + 1
End If
类似下面的内容可以单独存在,但不能与其他 ElseIf
命令一起存在。
If InStr(1, Worksheets("Raw data").Cells(i, 3), "1M") Then Call RowCopyPaste("AS-001", i, counter1M)
您可能想尝试将此作为 Select Case statement如果您还有更多条件需要涵盖。
关于excel - 级联 if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258316/