以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140480)

--  作者:hbhb
--  发布时间:2019/9/6 14:08:00
--  请教事件
大师:如果我要获取表中单元格的值进行判断。写在哪个事件中,假如客户点击的还是同一个单元格,怎么办?
--  作者:有点蓝
--  发布时间:2019/9/6 14:17:00
--  
BeforeSelChange选择不同的单元格前执行,也就是表的RowSel、ColSel属性发生变化前执行
AfterSelChange选择不同的单元格后执行,也就是表的RowSel、ColSel属性发生变化后执行

--  作者:hbhb
--  发布时间:2019/9/9 18:22:00
--  
测试很长时间,还是达不到效果,比如我要判断在表a中选定的第一列的某一单元格的值是否等于“好”,实现如下功能:
1、如果点击的单元格不是第一列,提示选择第一列 ,提示,返回。
2、选择第一列的单元格后,如果该单元格的值不是“好” ,提示不对,返回。
3、返回后,如果选择是同样的单元格,同样提示,返回。
请问在哪个事件中,代码怎么写?

--  作者:有点蓝
--  发布时间:2019/9/9 20:50:00
--  

If e.Table.Cols(e.NewRange.ColSel).Name <> "第一列"
    e.cancel = True
    msgbox("不是第一列")
ElseIf e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行
    Dim r As Row = e.Table.Rows(e.NewRange.Rowsel)
    If r("第一列") <> "好" Then  \'如果编号为空
        e.Cancel = True
    End If
End If

--  作者:有点蓝
--  发布时间:2019/9/9 20:50:00
--  
第三点没看懂
--  作者:hbhb
--  发布时间:2019/9/9 22:22:00
--  
谢谢!一直在AfterSelChange写,e.Cancel 在这个事件没有。没有细看!不好意思。