'备注: recordset1 是ADO记录集,获得的代码我未写 '********************************************************* 'Excel处理 '********************************************************* Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlSheet = CreateObject("Excel.Sheet")
原因就是office xp是Word10版本,而office 2000是Word9版本 所以要兼容不能直接引用Word(或者在office200下引用,打包) 否则最好采用下面的做法: Dim objWord as Object Set objWord=CreateObject("Word.Application") 然后就可以解决问题了
直接创建对象,可以使版本无关!这是我使用Excel的经验,不知道Word如何直接创建对象?
'Excel处理
'*********************************************************
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application")
Set xlSheet = CreateObject("Excel.Sheet")
Dim strSource As String
strSource = App.Path & "\ABC.xls"
'ABC.xls就是一个模版文件
Set xlBook = xlApp.Workbooks.Open(strSource) '打开工作薄
Set xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = False
'// 取得指定字段信息
For i = 0 To recordset1.RecordCount - 1
xlSheet.cells(i + 1, 1) = recordset1.fields(0)
Next '自动列宽
xlSheet.cells.EntireColumn.AutoFit
xlApp.Application.Visible = True
'************************************
'打印报表
xlSheet.PrintPreview
xlBook.Save
Set xlApp = Nothing '"交还控制给Excel
Set xlBook = Nothing
Set xlSheet = Nothing
难道就没有人知道了解决办法了嘛!!!!!!!!!!!!!!!!!!!!!!
总不能用户有几个版本的office,我就在几个office下编译吧!!!!
Set xlSheet = CreateObject("Excel.Sheet")
lihonggen0(李洪根,MS MVP,标准答案来了):
Set xlApp = CreateObject("Excel.Application")
Set xlSheet = CreateObject("Excel.Sheet")excel是没有问题啊,可是引用word就回出现问题!!!LGQ1001(ft) :
你能不能说清楚点啊???
谢谢!
Set oDoc = CreateObject("Word.Document")
Dim oWord, oDoc
Set oWord = CreateObject("Word.Application")
'Set oDoc = CreateObject("Word.Document")
Set oDoc = oWord.Documents.Add
oWord.ActiveDocument.Content.Text = "Hi"
oDoc.SaveAs "d:\1234.doc"
oDoc.Close
Set oDoc = Nothing
oWord.Quit
Set oWord = NothingEnd Sub
在com addin 的startup事件中判断application.version >= 10 才显示控件件。
所以要兼容不能直接引用Word(或者在office200下引用,打包)
否则最好采用下面的做法:
Dim objWord as Object
Set objWord=CreateObject("Word.Application")
然后就可以解决问题了