| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1623 人关注过本帖
标题:VFP操控EXCEL的一个问题
只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
结帖率:95.83%
收藏
已结贴  问题点数:20 回复次数:5 
VFP操控EXCEL的一个问题
各位亲,我的电脑环境是 WIN7.0,VFP8.0,EXCEL2007。现遇到一个怪事:
10    myexcel=createobject('excel.application')  
20    MyExcel.visible=.T.   
30    Mb_excel=myexcel.workbooks.add   
40    Mb_excel.worksheets('sheet1').name='明细'
50    Mb_excel.worksheets('sheet2').name='统计'
60    FOR EACH oMyVar IN Mb_Excel.sheets
70      ? oMyVar.Name  
80    NEXT oMyVar
执行以上8句正常。  当增加以下编号为35的那一句,就有问题了 (编号是为描述问题方便,此处临时加的)
 
10    myexcel=createobject('excel.application')
20    MyExcel.visible=.T.   
30    Mb_excel=myexcel.workbooks.add
35    Mb_excel=myexcel.WorkSheets.add        &&& 新增一个工作表
40    Mb_excel.worksheets('sheet1').name='明细'
50    Mb_excel.worksheets('sheet2').name='统计'
60    FOR EACH oMyVar IN Mb_Excel.sheets
70      ? oMyVar.Name
80    NEXT oMyVar
执行到编号 40 的语句时,出错提示为: OLE 错误码 0x80020006:Unknown name

盼高手解答。谢谢!
搜索更多相关主题的帖子: add VFP EXCEL name 编号 
2020-11-20 10:12
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
myexcel=createobject('excel.application')
myexcel.visible=.T.   
myexcel.workbooks.add
myexcel.WorkSheets.add        &&& 新增一个工作表
myexcel.worksheets('sheet1').name='明细'
myexcel.worksheets('sheet2').name='统计'
FOR EACH oMyVar IN myexcel.sheets
    ? oMyVar.Name
ENDFOR
2020-11-20 10:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
Mb_excel=myexcel.workbooks.add
语法:
.Add(Template)
使用方法
https://blog.bccn.net/sdta/65850

我的理解是,在工作簿中已有工作表的情况下,才能使用下面的代码
Mb_excel=myexcel.WorkSheets.add  && 这行代码应该不符合要求吧

语法:
.Add( Before, After, Count, Type )
使用方法
https://blog.bccn.net/sdta/65849

[此贴子已经被作者于2020-11-20 10:42编辑过]


坚守VFP最后的阵地
2020-11-20 10:37
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
感谢“吹版”和“sdta”的回复!

程序中打开多个工作簿,为切换窗口,所以用变量 MB_excel 来标识
不新增工作表,执行都是正常。
新增过工作表,后面的代码 为什么 会出错呢?

[此贴子已经被作者于2020-11-20 10:44编辑过]


只求每天有一丁点儿的进步就可以了
2020-11-20 10:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
myexcel=createobject('excel.application')  
MyExcel.visible=.T.   
Mb_excel=myexcel.workbooks.add  
Mb_excel1=myexcel.WorkSheets.add(,myExcel.Sheets(myExcel.Sheets.count),1,-4167)
Mb_excel.worksheets('sheet1').name='明细'
Mb_excel.worksheets('sheet2').name='统计'
FOR EACH oMyVar IN Mb_Excel.sheets
    ? oMyVar.Name  
NEXT oMyVar

坚守VFP最后的阵地
2020-11-20 11:07
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
经二位版主的回复启发,已解决问题了。
原来,新增工作表时不可使用标识变量,其他语名均可使用自己的标识变量,对同一项目中不同的工作簿新增工作表,可用标识变量切换窗口来控制在哪个工作簿中新增工作表

再次感谢二位的回复,谢谢!

只求每天有一丁点儿的进步就可以了
2020-11-20 11:08
快速回复:VFP操控EXCEL的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023969 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved