以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- if问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129767) |
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/5 17:45:00 -- if问题 老师,请问下,如果A列一样,B列数值大的,C列会自动输入正确,如果A列就单个,例如电冰箱,那默认认就是最大的,例如下面的表格,代码要怎么写,谢谢!
|
||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2019/1/6 23:43:00 -- 试试
http://www.foxtable.com/webhelp/scr/2382.htm
|
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/7 21:28:00 -- 老师,示例看了,不会弄,麻饭能帮我写下代码吗?谢谢1 |
||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/1/7 21:57:00 -- datacolchanged事件 Select Case e.DataCol.Name Case "A列","B列" If e.DataTable.Compute("max(B列)","A列=\'" & e.DataRow("A列") & "\'") = e.DataRow("B列") Then e.DataRow("C列") = "正确" Else e.DataRow("C列") = Nothing End If End Select |
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/7 22:54:00 -- 老师,上面的代码有个问题,比如电视的B列最大值是150,然后右边出现正确,但当我增加一行电视行,并且右边B列的最大值输入300后,这时会出现150和300的C列都会出现“正确”我是想永远只有最大值的C列才会出现正确,其他的为空,当有更大值出现时,原先最大值的C列的“正确”会自动消失 第二个,当A列,B列都不为空时,才会执行代码 麻烦老师帮我改下,谢谢!
|
||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/1/7 23:23:00 -- Select Case e.DataCol.Name Case "A列","B列" e.DataTable.ReplaceFor("C列",Nothing,"A列=\'" & e.DataRow("A列") & "\'") Dim dr As DataRow = e.DataTable.Find("A列=\'" & e.DataRow("A列") & "\'","B列 desc") If dr IsNot Nothing Then dr("C列") = "正确" End If End Select [此贴子已经被作者于2019/1/8 21:10:16编辑过]
|
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/8 1:30:00 -- 老师,上面的代码,我如果用复制的方式不行,我在B列复制3个数据进去,然后在A列再复制3个同样的代号进去,完了之后C列不会识别,在B列最大数据那行不显示“正确”,而是只会在最后一行显示“正确”,还有一个问题,我A列只要一有数据,C列就自动输入正确了,我是想要A列B列都有数据之后,C列才开始识别,只要A列B列任何一列有空数据的话,那么对应行的C列都是空的,麻烦老师帮我改下,谢谢! |
||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2019/1/8 9:02:00 -- 代码没问题,请把你的B列改成数值列,不要用字符列。
不然,请上传具体实例测试。 |
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/8 19:13:00 -- 老师,我已上传实例,麻烦帮我测试下,谢谢! |
||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/1/8 19:14:00 --
|