VB Excel SaveAs FileFormat参数问题?

w1984721 2009-08-12 02:36:17
我想 VB 把Excel文件转换成CSV文件.
下面编译出错 xlCSV 变量未定义,当我使用引用Microsoft Excel 9.0 Object Library的时候就正确,不引用就错误,我的程序不想要引用的.因为要面对的Excel版本不同.xlCSV常量为6,我把它换为6的时候编译通过.问下在Excel 97/2000/XP/2003/2007下xlCSV的值都相同吗?要是不同这么解决?像我这种不使用引用的情况如何解决FileFormat参数问题?.对于xlHtml,xlTextWindows,xlDBF2这些格式这么处理?拜托大家了.

Dim XlsApp As Object
Dim XlsSheet As Object
Dim XlsBook As Object
Set XlsApp = CreateObject("Excel.Application")
Set XlsBook = XlsApp.Workbooks.Open("D:\excel\a.xls")
Set XlsSheet = XlsBook.Worksheets(1)
XlsBook.SaveAs "D:\excel\a.csv", FileFormat:=xlCSV 'xlCSV 变量未定义,换成6的时候编译通过
...全文
870 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2009-08-12
  • 打赏
  • 举报
回复
不引用类库的话可用自己在模块中定义
Public Enum XlFileFormat
xlCSV = 6
xlHtml = 44
...
End Enum
chinaboyzyq 2009-08-12
  • 打赏
  • 举报
回复
你要是不信的话,可以用录制宏的方式自己去测.
chinaboyzyq 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 w1984721 的回复:]
我想 VB 把Excel文件转换成CSV文件.
下面编译出错 xlCSV 变量未定义,当我使用引用Microsoft Excel 9.0 Object Library的时候就正确,不引用就错误,我的程序不想要引用的.因为要面对的Excel版本不同.xlCSV常量为6,我把它换为6的时候编译通过.问下在Excel 97/2000/XP/2003/2007下xlCSV的值都相同吗?要是不同这么解决?像我这种不使用引用的情况如何解决FileFormat参数问题?.对于xlHtml,xlTextWindows,xlDBF2这些格式这么处理?拜托大家了.

Dim XlsApp  As Object
Dim XlsSheet As Object
Dim XlsBook As Object
Set XlsApp = CreateObject("Excel.Application")
Set XlsBook = XlsApp.Workbooks.Open("D:\excel\a.xls")
Set XlsSheet = XlsBook.Worksheets(1)
XlsBook.SaveAs "D:\excel\a.csv", FileFormat:=xlCSV  'xlCSV 变量未定义,换成6的时候编译通过

[/Quote]

我替你测试了2000和2003全是6,我想其它版本不用测了,微软为保持版本的兼容性,肯定全都是6

XlsBook.SaveAs "D:\excel\a.csv", FileFormat:=6 'ok
白发程序猿 2009-08-12
  • 打赏
  • 举报
回复
不引用,这些常量肯定不能用啦
据我所知,不管是9.0还是10.0,xlCsv都是6
slowgrace 2009-08-12
  • 打赏
  • 举报
回复
如果你不想引用那个类型库,那你就在标准模块里自己定义常量吧,把9.0里的那些常数抄过来。

另,没做过EXCEL,瞎出的主意哈。

7,763

社区成员

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

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