[操作技巧]鱼与熊掌和SetCellText函数
很多时候,贪心的我们,常常鱼与熊掌想统统吃下,我们用易表也不例外, 既想手工改动,同时又想随着另一列的变化而变化,其实全盘统吃还是有可能的,大家不妨看看:
egd文件下载
在这个附件中, 就在第二列实现了:既可以手工改动,同时又可以随着第一列的变化而变化。
呵呵,如果你有点心动的话,打开易表文件,马上与我一起行动吧!
一,常规想法
平常,要想数据来源于某列,同时有要可以手工修改,我们常常会在刷新公式中设置如下公式:If([第二列] > "",[第二列],[第一列]),这个公式意思是当第二列有数据时,按第二列数据不变(也就是你修改什么是什么),反之,则刷新为第一列数据。这样设置,带来一个问题是,当第一列数据修改后,第二列因为已有数据而无法刷新。这就是,鱼与熊掌不可兼得也
二,换一个想路
我们知道,要想让系统知道,第一列是否已修改,必须有个参照数据进行比较才行,也就是得增加一列辅助列,(也许你一听要加一列就觉得烦,其实比起能吃到熊掌来说,这可是小儿科毛毛雨啦)通过表设计,加一列,取名为:A 吧。在A列操作公式中写入:
SetCellText(GridName,Row,"A",[第一列])
意思是在当前表,当前行,A列中写入第一列数据。
这样一来,当我们一旦修改了第一列数据,A列就会记录一下第一列数据。
三,一起来吃鱼与熊掌
现在,只要我们在第一列的操作公式中写入:
IF([第一列] <> [A],SetCellText(GridName,Row,"第二列",[第一列]), True )
公式意思我想你也已明白了吧。(什么,不明白?!好吧,这个公式就是说,当第一列数据不等于A列时,写入当前表当前行第二列为第一列数据。否则就是按兵不动。)
好了,为了好看些,选中A列,隐藏它吧,现在,你可以坐下来(噢,你一直是坐着的,很少有人站着用易表吧,呵呵!),慢慢品尝鲜美鱼与熊掌了。