求高手指教 OLE

gu302 2006-03-27 07:50:06
我想在自己的程序中打开已经存在的Excel文件 下了写面的程序 不知为什么总是不行
Variant Ex,Wb,Sh1;
Ex = CreateOleObject("Excel.Application");
Ex.OlePropertySet("Visible",true);当程序执行此处时就异常
我在windows任务管理器中发现创建的 Excel已经存在 就是没有显示出来. 而上面的程序在
另外一个工程中却正常运行 郁闷呀 请高手指教
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gu302 2006-03-27
  • 打赏
  • 举报
回复
我调试了你的程序 可是当它执行 Ex.OlePropertySet("Visible",true); 时就已经异常了
Waiting4you 2006-03-27
  • 打赏
  • 举报
回复
我试了一下,发现如果Ex超出它的"势力范围",它会自动把Excel关掉的.
比如:
OnClick()
{
Variant Ex;
Ex = Variant::CreateObject("Excel.Application");
Ex.OlePropertySet("Visible",true);
}
这样运行OnClick的话Excel只是一闪就没了,因为Ex退出是释放了.
改成这样试了一下,可以:
OnClick()
{
Variant Ex;
Ex = Variant::CreateObject("Excel.Application");
Ex.OlePropertySet("Visible",true);
ShowMessage("Excel has been launched and now is visible");//加个ShowMessage
Ex.OleFunction("Quit");
Ex = Unassigned;
}
lurel 2006-03-27
  • 打赏
  • 举报
回复
Excel进程只能有一个,不能有多个,如果出现多个,就不行了,注意释放.

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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