比较两个单元串以打印出好或坏

问题描述

下面是我一直在绞尽脑汁的 VBA 代码我有 4 个不同的值来比较以获得我想要的结果和多个要比较的东西。如果有人能帮我解决这个问题,那就太好了。

Public Sub cts_04_cmac_2_check()
    'CTS04CSPRWY CMAC 2 Check
    If (Sheet1.Range("A62") = "2.3.4/42/24/B1") And (Sheet1.Range("A63") = "2.3.4/42/1/B1") Then
            Sheet1.Range("C3").Value2 = "Good"
        Else
            Sheet1.Range("C3").Value2 = "Invalid"
    End If
    'End of CTS04CSPRWY CMAC 2 Check
End Sub

实际上,我希望包含或包含声明:

Public Sub cts_04_cmac_2_check()
    'CTS04CSPRWY CMAC 2 Check
    If (Sheet1.Range("A62") = "2.3.4/42/24/B1" Or Sheet1.Range("A62") = "2.3.4/42/24/B2) And (Sheet1.Range("A63") = "2.3.4/42/1/B1" Or Sheet1.Range("A63") = "2.3.4/42/1/B2") Then
            Sheet1.Range("C3").Value2 = "Good"
        Else
            Sheet1.Range("C3").Value2 = "Invalid"
    End If
    'End of CTS04CSPRWY CMAC 2 Check
End Sub

这将 2 个值与根据选择而变化的数组索引表进行比较。

还有一个问题是:我可以在结束 if 后继续添加额外的 If 语句吗?我有大约 256 个检查要通过上面的类似代码来完成。

它比较了这两个公式:

=INDEX('集合节点数据'!A2:AQ1048576,MATCH(I3,'集合节点数据'!A2:A230,0),15) =INDEX('集合节点数据'!A2:AQ1048576,26) enter image description here

基于此值

enter image description here

在 CMTS 检查单元 C3 中获得“好”或“坏” enter image description here

解决方法

我找到了解决方法,感谢您的跟踪和快速响应!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target,Range("$I$3")) Is Nothing Then
    Call ctscheck
    End If
End Sub

Public Sub ctscheck()
'CTS04CSPRWY CMAC 2 Check
    If (Sheet1.Range("A62") = "2.3.4/42/24/B1") And (Sheet1.Range("A63") = "2.3.4/42/1/B1") Then
            Sheet1.Range("C2").Value2 = "Good"
        ElseIf (Sheet1.Range("A62") = "2.3.4/42/24/A1") And (Sheet1.Range("A63") = "2.3.4/42/1/A1") Then
            Sheet1.Range("C2").Value2 = "Good"
        ElseIf (Sheet1.Range("A62") = "2.3.4/42/24/C1") And (Sheet1.Range("A63") = "2.3.4/42/1/C1") Then
            Sheet1.Range("C2").Value2 = "Good"
        Else
            Sheet1.Range("C2").Value2 = "Invalid"
    End If
'End of CTS04CSPRWY CMAC 2 Check
End Sub

只需要让 OR 语句与此一起工作,这很重要。如果有人对压缩此内容有任何建议,请告诉我。

,

此代码与您自己的代码基本相同,只是按照您的要求进行了压缩:

If (
     (  Sheet1.Range("A62") = "2.3.4/42/24/B1" And Sheet1.Range("A63") = "2.3.4/42/1/B1") Or _
     (  Sheet1.Range("A62") = "2.3.4/42/24/A1" And Sheet1.Range("A63") = "2.3.4/42/1/A1") Or _
     (  Sheet1.Range("A62") = "2.3.4/42/24/C1" And Sheet1.Range("A63") = "2.3.4/42/1/C1") _
   ) Then
        Sheet1.Range("C2").Value2 = "Good"
    Else
        Sheet1.Range("C2").Value2 = "Invalid"
End If