我说一种循环公式的写法,你看看能不能用的上:
求1+2+3+4+……+98+99+100
用LOOP写 理解起来容易,但是易表的LOOP函数不是太好用,特别是写在刷新公式里面,基本上运行不起来。
另外一种写法:
建两个变量 %N% %Sum%
setvariable("%N%",0) and setvariable("%Sum%",0)
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
………………
and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])
从第2行开始,每行都一样 一共100行
如果真这样写,也不叫循环了,因为如果别人要求从1加到10000的话,写命令都写死人了。 正好有rept函数可以帮着完成写重复命令的任务。
第2到10行可以写成
rept("and setvariable("%N%",[%N%]+1) and setvariable("%Sum%",[%Sum%]+[%N%])",100)
不过这个写法是错的,易表公式有个要求:把"放进别的引号间,每个"都要写成""
因此要写成
rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
所以整个公式是:
setvariable("%N%",0) and setvariable("%Sum%",0)+rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
电脑写出的公式只是一个比较长的字符串,系统并不会把他当成公式
用eval()来执行这段公式(字符串)
eval(setvariable("%N%",0) and setvariable("%Sum%",0)+rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100)
)
1加到100的值就保存在Sum变量里面了
注意,还有这样一种情况
不需要给 %N% %Sum%赋初值,想直接运行
rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100) 写出来的公式,但是前面多了一个 and 无法直接运行
可以,用mid( ,5)来得到第一个and 之后的内容,再eval()运行
eval(mid(rept("and setvariable(""%N%"",[%N%]+1) and setvariable(""%Sum%"",[%Sum%]+[%N%])",100),5))
-=-=-=- 以下内容由 lxl 在 2007年07月24日 02:58pm 时添加 -=-=-=-
基本上就是这个格式:
eval(mid(rept(" and 语句1 and 语句2 and 语句3",循环次数),5))
第一个and前面也要有空格,我上面的公式可能没写,记得加上.