以文本方式查看主题

-  易表在线答疑  (http://www.egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://www.egrid2000.com/dvbbs/list.asp?boardid=2)
----  [讨论]XP下内存错误  (http://www.egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=10143)

--  作者:xjy
--  发布时间:2007/10/28 10:51:00
--  [讨论]XP下内存错误
我的易表文件在XP系统下总是出错。
经多次实验发现:只要是在窗口的“打开前执行公式”中输入诸如:FindText("个人质效汇总","发放时间","排序",">","",-1)类(用maxfor()函数测试也一样 )公式就会出错。但只是输入:FindText("个人质效汇总","发放时间")则不会出错。
还有FindText("个人质效汇总","发放时间","排序",">","",-1)发放时间为时间型,可输出的结果为以日为单位的数值。
我的机器为Ghost的Win xp是不是Ghost的系统问题,请大家测试。
[UploadFile=123_1193539825.bmp]

-=-=-=- 以下内容由 xjy2007年10月28日 11:01am 时添加 -=-=-=-
在2K系统下没有发现错误问题
--  作者:程兴刚
--  发布时间:2007/10/28 11:33:00
--  
    呵呵,窗口打开前公式压根儿就不应该单独用FindText()或maxfor()函数的公式,他俩返回的是某一个实际值,这个值赋给谁?放到哪里?
    在这里应该设置操作型公式,比如:AddRow()、AppendRows()、BackupFile()SetCellText()、ShowAllRows()、Select()、SetFocus()、SetLabel()、SetVariable()、SortCol().......等等函数(还有很多,不再一一列举),而最常用的有SetLabel()、SetVariable()、SortCol().......等等!

     拿您的函数公式于这些对比就知道了,没有不出现内存错误的理由!

-=-=-=- 以下内容由 程兴刚2007年10月28日 11:38am 时添加 -=-=-=-
呵呵,从公式管理器的截图看,您不是直接使用的,与您的叙述不一致!


--  作者:程兴刚
--  发布时间:2007/10/28 11:37:00
--  
从您的截图里看,是直接用SetVariable()、FindText()函数嵌套错误,将FindText()部分改为变量,其它嵌套您自己再试试!
--  作者:xjy
--  发布时间:2007/10/28 11:54:00
--  
谢谢。
将FindText("个人质效汇总","发放时间","排序",">","",-1)设置为表达式变量后是没有问题了。
为何FindText("个人质效汇总","发放时间","排序",">","",-1)值的结果为39264?应该为2007-7-1的呀?


-=-=-=- 以下内容由 xjy2007年10月28日 11:55am 时添加 -=-=-=-
现在我是再加Text()解决的
--  作者:Czy
--  发布时间:2007/10/28 11:56:00
--  
Date(FindText("个人质效汇总","发放时间","排序",">","",-1))

这才是2007-7-1


--  作者:xjy
--  发布时间:2007/10/28 12:04:00
--  
易表中的解释:FindText的返回值类型根据列类型确定,如果找到符合条件的行,那么返回值与该列类型相同。
再用Date(FindText("个人质效汇总","发放时间","排序",">","",-1))的结果仍然是数值39264呀?

-=-=-=- 以下内容由 xjy2007年10月28日 00:08pm 时添加 -=-=-=-
类型倒是时间型值却是数值
--  作者:Czy
--  发布时间:2007/10/28 12:07:00
--  
Date(39264)=2007-7-1

自己试一下不就知道了。


--  作者:程兴刚
--  发布时间:2007/10/28 12:26:00
--  
下面引用由xjy2007/10/28 00:04pm 发表的内容:
易表中的解释:FindText的返回值类型根据列类型确定,如果找到符合条件的行,那么返回值与该列类型相同。
再用Date(FindText("个人质效汇总","发放时间","排序",">","",-1))的结果仍然是数值39264呀?


       第一:您的理解没有错,易表的解释也没有错!
       第二:FindText的返回值类型根据列类型,它主要区别于当前生成数据的列(欲赋值的列或变量)的类型,将您的变量  %汇总时间%、%时间%、%发放时间%等改为日期型即可,这样就不需要嵌套Date()或者text()

       注:应该是您将%汇总时间%、%时间%、%发放时间%设成了数值型或字符型,使用text()函数嵌套后,生成的格式是这样:2007-9-25,您的变量则为字符型;如果生成的格式是这样:2007-09-25,您的变量则为数值型,请楼主测试!


--  作者:xjy
--  发布时间:2007/10/28 13:31:00
--  
这样计算都不错,包括直接用FindText("个人质效汇总","发放时间","排序",">","",-1),但是将值输出到变量就不行了。

-=-=-=- 以下内容由 xjy2007年10月28日 01:39pm 时添加 -=-=-=-
变量是日期型
--  作者:xjy
--  发布时间:2007/10/28 13:42:00
--  
下面引用由程兴刚2007/10/28 00:26pm 发表的内容:
       第一:您的理解没有错,易表的解释也没有错!
       第二:FindText的返回值类型根据列类型,它主要区别于当前生成数据的列(欲赋值的列或变量)的类型,将您的变量  %汇总时间%、%时间%、%发放时间% ...

我设置的变量都是时间型的。