以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如果不用辅助列判断两个等级所在的档次  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189592)

--  作者:zhangchi96
--  发布时间:2023/12/10 21:35:00
--  如果不用辅助列判断两个等级所在的档次
现有产品的档次 : 一档 、 二挡 、三档 、四挡 、五档、六档 、七档、八档、九档 ,一档为最高、九档最低

其中
         高级 包含 :一档 、二挡 、三档 
         中级 包含:四挡 、五档、六档
         初级 包含:七档、八档、九档

定义两个档次:A 、B  

im A As String

Dim B As String


这里A和B ,是一档 、 二挡 、三档 、四挡 、五档、六档 、七档、八档、九档 中的任意一个
如果A<> B, 在不用辅助列的情况下:
(1) 如何判断A、B 是同一个级别里的,或者不同一个级别,如  A = 三档,B = 五档,那么因为A是高级,B属于中级,A比B高一级
                                                                            如  A = 四档,B = 五档,那么因为A是中级级,B属于中级,A和B同一级
(2) 如果A和B是同一级别,怎么判断A比B高一档,如如  A = 四档,B = 五档,那么因为A是中级,B属于中级,A与B同一级 ,但判断出A比B高一档
                                                                            

--  作者:有点蓝
--  发布时间:2023/12/10 22:20:00
--  
Dim 档次() As String = {"一档", "二挡", "三档", "四挡", "五档", "六档", "七档", "八档", "九档"}

Dim a As String = "三档"
Dim b As String = "五档"

Dim a1 As Integer = Array.IndexOf(档次, a)
Dim b1 As Integer = Array.IndexOf(档次, b)

If (a1 < 3 AndAlso b1 > 2) OrElse (a1 < 6 AndAlso b1 > 5) Then
    MsgBox("不同级")
Else
    MsgBox("同级")
End If
If a1 = b1 Then
    MsgBox("同档")
Else
    MsgBox(IIf(a1 > b1, "b", "a") & "高一档")
End If