您的位置:首页 > 其它

用VFP实现EXCEL不同文件间工作表的复制最终解决方案

2009-09-28 21:07 405 查看
今天查阅了很多资料,试验了好多方法,搞了一个下午,终于搞定,不敢私藏,与大家分享。

正确方法:

m.err=.f.
on error m.err=.t.
eole=create("excel.application")
*eloe1=create("excel.application")
eole.visible=.t.
IF m.err=.t.
messagebox( "访问Execl失败!请检查你的系统是否正确安装 Excel 软件",48,"提醒")
wait clear
return
ENDI
*

eole.Workbooks.OPEN('BOOK1.XLS')&&打开工作表一
eole.Workbooks.OPEN('BOOK2.XLS') &&打开工作表二
*下面是复制工作表的正确语法:

FILENAME='book1.xls'
eole.Sheets(1).copy(eole.Workbooks("&FILENAME").Sheets(1))

*或者直接

eole.Sheets(1).copy(eole.Workbooks("BOOK1.XLS").Sheets(1))

以下都是错误的语法:

eole.Sheets(1).copy(eole.Workbooks("D:/BOOK1.XLS").Sheets(1)) &&后面部分不能带路径,用宏替换时也不能有路径!

[/code]
eole.Workbooks("BOOK2.XLS").Sheets(1).copy(eole.Workbooks("BOOK1.XLS").Sheets(1)) &&前面部分也不能这样写!

*同理,如果把COPY改为MOVE 就变成了在不同文件中移动工作表。

*心得:看来改写用宏录制的东西需要注意的很多,失之毫厘,谬以千里。

另外一种拷贝工作表的方法,但不能完美复制格式。

oexcel1=createobject(/'excel.application/')
oexcel1.workbooks.open("a.xls")
oexcel1.worksheets("sh1").usedrange.copy
oexcel2=createobject(/'excel.application/')
oexcel2.Workbooks.Add
oexcel2.sheets.add
oexcel2.activesheet.paste
最后一句代码若用paste方法,无法复制格式,目的工作表只有内容与源表一样,其他面目全非;

若用pastespecial方法,目的表成了一个无法编辑的对象、变成了图片。
如果pastespecial()括号里面加一些参数,可以实现选择性粘贴,但也不能复制格式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐