VB6调用excel的问题

xiaozhi234 2008-05-06 10:36:15
在VB6里引用excel时,在编写的电脑上是excel2003版本,
但在使用的电脑上是excel2000,运行的时候就出错了,
请问有什么办法解决啊??可以提供下源码吗?
...全文
377 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhi234 2008-05-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 anlog 的回复:]
楼主我的做法是现在2003下将程序开发完成,之后再在另外一台电脑使用了2000的电脑上安装vb6打开工程在工程菜单下从新添加引用项目(替换原有的11)之后打包就可以了。一般情况下为了确保安装顺利我就只做了两个安装包,一个是2003下的,一个是2000下的,随便客户的使用。
[/Quote]

这方法不错。。只不过要做两个安装包。。觉得有点麻烦。。
xiaozhi234 2008-05-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yinweihong 的回复:]
引用 11 楼 xiaozhi234 的回复:
引用 8 楼 yinweihong 的回复:
后期绑定
先定义为object然后再set为excel对象 类似这样
dim excelApp as Object
dim excelSheet as Object

set excelApp = new Excel.Application
set excelSheet = new Excel.WorkSheet


哪还需要引用excel吗/???


要的,我们一直在2000下做开发,2000,xp,2003上用完全没有问题~
[/Quote]

这就奇怪了。。我在office2000下引用重新编译。。再安装上office2003。。运行就出错了。。
guolibin 2008-05-08
  • 打赏
  • 举报
回复
我今天也遇到相同的问题。
是这样解决的:

在工程中把Excel的引用去掉。
然后代码改成:

Dim strPath As String
Dim objXlsApp As Object 'Excel.Application
Dim objBook As Object 'Workbook
Dim objSheet As Object 'Worksheet

'....
strPath = txtPath.Text
Set objXlsApp = CreateObject("Excel.Application") 'New Excel.Application
Set objBook = objXlsApp.Workbooks.Open(strPath, False, True)
Set objSheet = objBook.Worksheets(1)
'....



另外注意有些在2003中的属性和方法在2000中会出错。
yinweihong 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaozhi234 的回复:]
引用 8 楼 yinweihong 的回复:
后期绑定
先定义为object然后再set为excel对象 类似这样
dim excelApp as Object
dim excelSheet as Object

set excelApp = new Excel.Application
set excelSheet = new Excel.WorkSheet


哪还需要引用excel吗/???
[/Quote]

要的,我们一直在2000下做开发,2000,xp,2003上用完全没有问题~
anlog 2008-05-08
  • 打赏
  • 举报
回复
楼主我的做法是现在2003下将程序开发完成,之后再在另外一台电脑使用了2000的电脑上安装vb6打开工程在工程菜单下从新添加引用项目(替换原有的11)之后打包就可以了。一般情况下为了确保安装顺利我就只做了两个安装包,一个是2003下的,一个是2000下的,随便客户的使用。
xiaozhi234 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhanghuacheng 的回复:]
引用 5 楼 xiaozhi234 的回复:
哦。。就是说引用2000的,在2003上也可以使用??
哪先试一下。。谢了。。

请先确保你的机器上安装了excel2000,再引用:Microsoft Excel 9.0 Object Library
如果找不到该引用项可以点击“浏览”按钮在Excel2000的安装目录下找到Excel9.olb。
我们在处理类似问题时都是这样的,没有遇到采用低版本开发的程序在高版本的Excel上不能使用的。
[/Quote]

是啊。。真的不行。。要在同一版本的才行。。
xiaozhi234 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinweihong 的回复:]
后期绑定
先定义为object然后再set为excel对象 类似这样
dim excelApp as Object
dim excelSheet as Object

set excelApp = new Excel.Application
set excelSheet = new Excel.WorkSheet
[/Quote]

哪还需要引用excel吗/???
zhanghuacheng 2008-05-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaozhi234 的回复:]
哦。。就是说引用2000的,在2003上也可以使用??
哪先试一下。。谢了。。
[/Quote]
请先确保你的机器上安装了excel2000,再引用:Microsoft Excel 9.0 Object Library
如果找不到该引用项可以点击“浏览”按钮在Excel2000的安装目录下找到Excel9.olb。
我们在处理类似问题时都是这样的,没有遇到采用低版本开发的程序在高版本的Excel上不能使用的。
yinweihong 2008-05-07
  • 打赏
  • 举报
回复
一般还是建议你在写代码的机器上装低版本的,目标机器上〉=这个版本~
yinweihong 2008-05-07
  • 打赏
  • 举报
回复
后期绑定
先定义为object然后再set为excel对象 类似这样
dim excelApp as Object
dim excelSheet as Object

set excelApp = new Excel.Application
set excelSheet = new Excel.WorkSheet
tim_zhang 2008-05-07
  • 打赏
  • 举报
回复
部分引用可以是使用值不要使用变量 如xlLeft为具体的值
xiaozhi234 2008-05-07
  • 打赏
  • 举报
回复
不行啊。。引用了excel2000在安装有office2003的电脑里就会出错了。。
有什么办法可以在office2000又可以在office2003的电脑里运行不会出错呢??
xiaozhi234 2008-05-06
  • 打赏
  • 举报
回复
哦。。就是说引用2000的,在2003上也可以使用??
哪先试一下。。谢了。。
zhanghuacheng 2008-05-06
  • 打赏
  • 举报
回复
修改原有工程,并采用EXCEL2000类型库进行重新编译,这样编译的程序在具有Excel2000及以上版本的机器上都可使用。
否则无法解决问题,因为Excel高版本向下兼容,低版本Excel是无法使用高版本的类型库的。
xiaozhi234 2008-05-06
  • 打赏
  • 举报
回复
可不可以详细点呢??有代码就更好。。谢。。
他山玉 2008-05-06
  • 打赏
  • 举报
回复
这种应该是判断一个excel宿主的版本,有些情况只有给出提示,停止运行。
xiaozhi234 2008-05-06
  • 打赏
  • 举报
回复
就是什么版本的excel都可以在VB里调用,怎么可以实现呢?谢。。

7,763

社区成员

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

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