[这个贴子最后由YBIL在 2007/04/05 00:34am 第 1 次编辑]
这样可以少设一个"%品名%"变量:
SetVariable("%开关%",2-Abs([%开关%]-1)) And Choose([%开关%], Eval("RemoveGrid("""+Substitute([%姓名%],"|",""") And RemoveGrid(""")+""") And CreateGrid(""" +Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Eval("Substitute(""|@|#|&|$|/|"",""|"","""+Substitute([%姓名%],"|",""")+""|""+Substitute(""|@|#|&|$|/|"",""|"",""")+""")"),"|",""""",2)"",2,2) and CreateGrid("""),"@",""",""A"",0) and Evalfor("""),"#",""",1,""CrossFill(2,""""表1"""",""""姓名"""",""""品名"""",""""数量"""",0,""""姓名"""",""""="""","""""),"&",""""") And RenameCol(1,""""姓名"""") And DeleteCol("""""),"$",""""",["),"/","!Cols]) And DelRow(""""") +""""",2)"",2,2)") And MsgBox("统计完毕!",1,4),Eval("RemoveGrid("""+Substitute([%姓名%],"|",""") And RemoveGrid(""")+""")"))
设置开关变量的作用控制公式执行统计或撤销,因SetVariable("%开关%",2-Abs([%开关%]-1))令[%开关%]的值不是1就是2
你可以把下面公式(1)放到测试表中用刷新公式执行看看是什么结果,实际的结果是(2):
(1):
"RemoveGrid("""+Substitute([%姓名%],"|",""") And RemoveGrid(""")+""") And CreateGrid(""" +Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Eval("Substitute(""|@|#|&|$|/|"",""|"","""+Substitute([%姓名%],"|",""")+""|""+Substitute(""|@|#|&|$|/|"",""|"",""")+""")"),"|",""""",2)"",2,2) and CreateGrid("""),"@",""",""A"",0) and Evalfor("""),"#",""",1,""CrossFill(2,""""表1"""",""""姓名"""",""""品名"""",""""数量"""",0,""""姓名"""",""""="""","""""),"&",""""") And RenameCol(1,""""姓名"""") And DeleteCol("""""),"$",""""",["),"/","!Cols]) And DelRow(""""") +""""",2)"",2,2)"
(2):
RemoveGrid("李四") And RemoveGrid("王五") And RemoveGrid("张三") And CreateGrid("李四","A",0) and Evalfor("李四",1,"CrossFill(2,""表1"",""姓名"",""品名"",""数量"",0,""姓名"",""="",""李四"") And RenameCol(1,""姓名"") And DeleteCol(""李四"