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

来源:互联网 发布:沪深300指数算法 编辑:程序博客网 时间:2024/06/07 03:04
今天查阅了很多资料,试验了好多方法,搞了一个下午,终于搞定,不敢私藏,与大家分享。
正确方法:
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)) &&后面部分不能带路径,用宏替换时也不能有路径!
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()括号里面加一些参数,可以实现选择性粘贴,但也不能复制格式。
原创粉丝点击