以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何锁定单元框内的数据值不变  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127390)

--  作者:huangjiacai
--  发布时间:2018/11/13 8:23:00
--  [求助]如何锁定单元框内的数据值不变
以第一行为例,假如我第一列设置为表达式列,我想在输入第一行第二列的数据之后触发锁定第一行第一列单元格里面的内容的条件,即第一行第二列的内容输入之后第一行第一列的单元框内的内容不再根据表达式发生变化,请教各位大神这个要如何实现呢。
--  作者:有点甜
--  发布时间:2018/11/13 8:57:00
--  

表达式改成比如

 

iif(第二列 is null, 公式1, 公式2)

 

具体问题做个实例发上来测试,也有可能表达式列无法实现你这样的功能,需要用代码处理。


--  作者:huangjiacai
--  发布时间:2018/11/13 9:41:00
--  
我的意思是这样,第一列为表达式列,第二列不为空的时候。第一列的值就不再随表达式变化,你如果做个非空值判断的话,当第二列的内容不为空时,就不执行表达式,就得不到任何结果,而我是想保留那个结果的,只是不再随表达式内变量的数值变化而变化
--  作者:有点甜
--  发布时间:2018/11/13 9:52:00
--  

方法一:加一个辅佐列,当修改第二列的时候,把第一列的值赋值过去,然后第一列公式改成显示辅佐列的值。

 

方法二:第一列改成数据列,用代码计算其值。


--  作者:huangjiacai
--  发布时间:2018/11/13 12:00:00
--  
如果采用方法一,那我得保证辅助列的数值也不会变动才行,但是我要取的那个数等于数值1减去数值2,数值又是变动的,这里又是变化的数;
如果采用方法二,用代码写出来的计算公式好像实时更新性很慢。

--  作者:有点甜
--  发布时间:2018/11/13 12:28:00
--  
方法一:你datacolchanged事件,写代码,如果第二列修改了值(不是空),就把第一列的值弄过去啊。也就是附加列的值永远等于第一次的值啊。