以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]多列判断取值的代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117012)

--  作者:倪远歌1
--  发布时间:2018/4/4 10:05:00
--  [求助]多列判断取值的代码
因为表达式列无法触发datacolchanged事件,
所以想把表达式转化为代码,以便后续列可以运行
问题如下:
abcdefj共7列
其中
A,C,E为判断列
B,D,F为取值列
J为结果列

如果 E 列包含 某个字
则 J列=F列对应位置(同一行,下同)的值
否则则返回到 C列 判断是否为空,
不为空 则 J列=D列 对应位置的值
否则则返回到 A列 ,判断对应位置是否为空
 不为空则J列=B列
求大神帮助


--  作者:有点甜
--  发布时间:2018/4/4 10:40:00
--  

DataColChanged事件

 

Select Case e.DataCol.name
    Case "e", "f", "d", "a", "b"
        Dim dr = e.DataRow
        If dr("e").contains("abc") Then
            dr("j") = dr("f")
        ElseIf dr("c") <> Nothing Then
            dr("j") = dr("d")
        ElseIf dr("a") <> Nothing Then
            dr("j") = dr("b")
        Else
            dr("j") = Nothing            
        End If
End select

[此贴子已经被作者于2018/4/4 10:40:38编辑过]

--  作者:倪远歌1
--  发布时间:2018/4/4 15:14:00
--  
为何不包含case C 和 j?
--  作者:倪远歌1
--  发布时间:2018/4/4 15:20:00
--  
为何case 不包含C(同为取值列)?
且后续列引用J列(结果列),怎样才能保持实时更新
即ABCDEF任何一列如果有变动,J列也会实时变动?

--  作者:有点甜
--  发布时间:2018/4/4 15:21:00
--  
以下是引用倪远歌1在2018/4/4 15:20:00的发言:
为何case 不包含C(同为取值列)?
且后续列引用J列(结果列),怎样才能保持实时更新
即ABCDEF任何一列如果有变动,J列也会实时变动?

 

你可以加上C列或者J列,根据你实际情况添加。