vfp怎么执行excel里的一个数组公式?

不假思索 2013-10-23 02:37:31
例如数组公式
{=MIN( IF( a1:a10 = 5, Row( a1:a10)))}

Excel里我们用Ctrl + Shift + Enter输入数组公式。

vfp里怎么直接调用这个公式能?假设不准备把这个公式填到一个具体的单元格中。
试过下面的代码直接Evaluate不行。

Local oExcel
oExcel=Createobject("Excel.Application")
oExcel.WorkBooks.Open(“abc.xls")
oExcel.Activesheet.Evaluate( "{=MIN( IF( a1:a10 = 5, Row( a1:a10)))}" )
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
不假思索 2013-10-24
  • 打赏
  • 举报
回复
原来是多了{}括号! 经过反复测试,发现{}括号是不需要的,原来错在这儿。去掉{}之后一切都可以了。 谢谢WWWWA热心相助! 多谢了!
WWWWA 2013-10-24
  • 打赏
  • 举报
回复
测试了一下,确实如此
不假思索 2013-10-23
  • 打赏
  • 举报
回复
房地产业两边的单引号要改成双引号,如下。但结果一样。 似乎是evalaute不接受后面的字符串。

oExcel = CREATEOBJECT( 'excel.application')
oExcel.WorkBooks.Open( 'D:\Documents\Visual FoxPro 项目\测试\分类.xls')
oSheet = oExcel.ActiveSheet
lcString = "{=MAX( if( l2:l387 = " + ["房地产业"] + " , row( l2:l387)))}"
nResult = oSheet.Evaluate( lcString )

不假思索 2013-10-23
  • 打赏
  • 举报
回复
谢谢WWWWA, http://access911.net/csdn/FileDescription.asp?mdb=2013-10-23&id=35 这段代码的目的是从类别这一列,提取每类的起始行号,和终止行号。
WWWWA 2013-10-23
  • 打赏
  • 举报
回复
如果可以的话, 上传你的xls、 prg到www.access911.net/csdn ,用WINRAR压缩
不假思索 2013-10-23
  • 打赏
  • 举报
回复
提示:Data type mismatch. 按后一种方法写的。
WWWWA 2013-10-23
  • 打赏
  • 举报
回复
提示什么
try:
oExcel.activesheet.range("A1").value=
application.evaluate("{MIN( IF( a1:a10 = 5, Row( a1:a10)))}")
or
a = oExcel.Activesheet.Evaluate( "{=MIN( IF( a1:a10 = 5, Row( a1:a10)))}" )

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧