“阻止如果没有结束,如果”VBA,excel



我正在处理一个"比较行"代码,我被一大块 ifs 困住了,下面是给我错误的代码部分(完整的代码有一百行长,如果我尝试运行它,它会给我错误消息"块如果没有结束如果",cola 存储搜索条件,而 colc(2) 存储带有一行位置的整数, 我的问题是我可以用这些线条做什么?

dim cola(1 to 3) as string
dim colc(1 to 16) as string
dim rck(1 to 3) as string
If cola(1) = "Rit" Or cola(1) = "RIT" Or cola(1) = "rit" Then
    colc(4) = colc(2)
    rck(1) = "Y"
If cola(2) = "Rit" Or cola(2) = "RIT" Or cola(2) = "rit" Then
    colc(6) = colc(2)
    rck(2) = "Y"
If cola(3) = "Rit" Or cola(3) = "RIT" Or cola(3) = "rit" Then
    colc(8) = colc(2)
    rck(3) = "Y"
End If

您缺少两个End If语句:

dim cola(1 to 3) as string
dim colc(1 to 16) as string
dim rck(1 to 3) as string
If cola(1) = "Rit" Or cola(1) = "RIT" Or cola(1) = "rit" Then
    colc(4) = colc(2)
    rck(1) = "Y"
End If
If cola(2) = "Rit" Or cola(2) = "RIT" Or cola(2) = "rit" Then
    colc(6) = colc(2)
    rck(2) = "Y"
End If
If cola(3) = "Rit" Or cola(3) = "RIT" Or cola(3) = "rit" Then
    colc(8) = colc(2)
    rck(3) = "Y"
End If

或者,也许您希望仅在False第一个语句时才计算第二个和第三个If语句,在这种情况下,您需要一个ElseIf

dim cola(1 to 3) as string
dim colc(1 to 16) as string
dim rck(1 to 3) as string
If cola(1) = "Rit" Or cola(1) = "RIT" Or cola(1) = "rit" Then
    colc(4) = colc(2)
    rck(1) = "Y"
ElseIf cola(2) = "Rit" Or cola(2) = "RIT" Or cola(2) = "rit" Then
    colc(6) = colc(2)
    rck(2) = "Y"
ElseIf cola(3) = "Rit" Or cola(3) = "RIT" Or cola(3) = "rit" Then
    colc(8) = colc(2)
    rck(3) = "Y"
End If

你可以通过说这样的话来简化你的代码。

If UCase(cola(1)) = "RIT" Then

因为这会将您正在查看的值转换为全部大写,然后您只需根据大写版本的"RIT"进行检查。

在 VBA 中,每个If块都需要一个关联的End If

在您的情况下,您正在比较一个If块内的多个方案,并且您需要使用ElseIf来实现此目的。我在下面添加了示例代码来演示如何格式化。

下面是有关如何在 VBA 中实现 IF-THEN-ELSE 语句的一些其他文档:https://www.techonthenet.com/excel/formulas/if_then.php

dim cola(1 to 3) as string
dim colc(1 to 16) as string
dim rck(1 to 3) as string
If cola(1) = "Rit" Or cola(1) = "RIT" Or cola(1) = "rit" Then
    colc(4) = colc(2)
    rck(1) = "Y"
ElseIf cola(2) = "Rit" Or cola(2) = "RIT" Or cola(2) = "rit" Then
    colc(6) = colc(2)
    rck(2) = "Y"
ElseIf cola(3) = "Rit" Or cola(3) = "RIT" Or cola(3) = "rit" Then
    colc(8) = colc(2)
    rck(3) = "Y"
End If

最新更新