点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,专家-我正在将新工作表添加到放置在Desktop上的现有excel中。我想在新工作表上添加一些信息。成功将新工作表添加到现有工作表中,但是当我打开Excel时说""。 xls已经打开。重新打开将导致您所做的所有更改被放弃。要您要重新打开" 。 打开新工作表后,还没有更改?下面是我的代码。感谢您的帮助。
DATA gs_excel TYPE ole2_object。
DATA gs_wbooks TYPE ole2_object。
数据gs_wbook类型ole2_object。
数据:gs_application类型ole2_object,
工作表类型ole2_object,
工作表类型ole2_object,
first_sheet TYPE ole2_object
单元格类型ole2_object。
创建对象gs_excel'EXCEL.APPLICATION'。
设置gs_excel"可见"的属性= 0。
获取gs_excel"工作簿" = gs_wbooks的属性。
*获取gs_wbooks'Application'= gs_application的属性。
*-打开现有文档
gs_wbooks"打开"的呼叫方法= gs_wbook
导出#1 = p_path。
如果sy-subrc = 0。
*创建第一个Excel工作表
gs_excel"工作表"的调用方法= first_sheet
导出#1 = 1。
gs_excel"工作表"的调用方法=工作表。
呼叫"添加"表格的方法
导出
#1 =首张纸。
获取gs_excel'ActiveSheet'=工作表的属性。
设置工作表"名称" ="标题"的属性。
*索引= row_max *(sy-tabix-1)+1。" 1-列名
表格"单元格"的调用方法=单元格导出#1 =1。"索引。
设置单元格的属性'值'='单元格data1'。
表格"单元格"的调用方法=单元格导出#1 =2。"索引。
设置单元格的"值" ="单元格data2"的属性。
*将excel speadsheet保存为特定的文件名
调用"保存"工作表的方法
导出
#1 = p_path"文件名
#2 = 1。
调用gs_excel'QUIT'的方法。
免费对象:gs_excel,gs_wbooks,gs_wbook,表格,表格。
您必须以与创建完全相反的顺序释放OLE对象
此致
Raymond
Merci Monsieur
嗨,专家们-有人可以帮忙吗? 如果您不理解,将重新解释该问题。
Appala,
您当然是正确的。 我总是在Excel宏的开头将Visible和ScreenUpdating属性设置为" False",然后在释放连接之前将它们都设置为" True"。 这样可以改善外观和性能。
我认为当OLE2连接试图关闭到已停止执行的程序(Excel)的链接时,会生成您所看到的错误。 当您发送退出命令时,Excel停止运行。
"免费对象gs_Excel"是您需要发布的唯一命令。
Juan
Appala,
我看了我的一些使用OLE2接口的旧程序。 它们不会像您一样向Excel对象发出" QUIT"命令。 他们以这种方式结束与excel的连接:
*告诉Excel在每次更改后恢复更新整个工作表
设置oExcel" ScreenUpdating"的属性= 1。
oExcel的"可见"设置属性= 1。
*与Excel断开连接
免费对象oExcel。
这似乎太简单了,但是已经使用了很多年。
我记得编写这些程序时可能会给您带来麻烦的问题。 如果必须从调试器退出OLE2程序,则有时Excel应用程序的实例将继续在您的PC上运行。 这些实例是不可见的,可以锁定excel数据文件。您可能需要使用PC上的任务管理器来"结束任务"并停止它们。
祝你好运
胡安
一周热门 更多>