EXCEL 2003 和 EXCEL 2000 的VBA 调用有差别?

忠向 2007-09-11 05:21:27
原先写的用VBA的一些代码,引用库是Office 2000的,用了几年了,也就是把一些数据输出到EXCEL表中。
最近机器系统重装,Office 也升级成了 2003年版本,用2003的typelib重新编译了程序,一切正常

使用的时候才发现,原先的VBA程序部分只要是有关写入数据的部分都不能用了,比如PutValue等等都报出异常了
调试状态下,检验异常,都是null(null),简直头大,怎么会这样,难道2003版本不让写入了?


...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaOBS 2007-09-12
  • 打赏
  • 举报
回复
不是VBA呀,那请其他朋友看看吧
忠向 2007-09-12
  • 打赏
  • 举报
回复
CString strRowStart = IndexToString(1, 1);
CString strRowEnd = IndexToString(1, 2*m_x + 1); //定位CELL
range = m_sheet->GetRange(COleVariant(strRowStart),COleVariant(strRowEnd));
range->Merge(COleVariant((short)2)); //合并CELL,没问题,按说这个也是写数据了,怎么就不出错呢?
CString str;
COleDateTime now = COleDateTime::GetCurrentTime();
str.Format("数据库数据统计表(%d年%d月%d日)", now.GetYear(), now.GetMonth(), now.GetDay());
range->PutValue(COleVariant(str)); //这里写数据到EXCEL,就出错
ChinaOBS 2007-09-12
  • 打赏
  • 举报
回复
能不能提供一段不能执行的代码瞧瞧?
忠向 2007-09-12
  • 打赏
  • 举报
回复
VC的版本是没问题,库也没问题,刚才查了下,知道是PutValue的问题,原来还有一个PutValue2,晕
XYX_YE 2007-09-12
  • 打赏
  • 举报
回复
你的代码是用c语言写的,怎么跑到这里来求帮助呢。
我曾在delphi里碰到过这样的问题,但换了另一种
连接方式后问题就解决了。也就是说只能通过调用
vba里的函数才能适应所有版本的excel.你用vc提
供的库就只能适应本vc版本之前的excel版本,到
网上去查找另一种vc调用vba的方法吧。

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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