想把運行資料保存到excel,沒有安裝microsoft office,只有wps,工程參考添加了“upgrade wps office 3.0 object library”。
在網上搜到如下代碼:
Private Sub Command1_Click()
On Error Resume Next
Dim objExcel As Excel.Application
Dim objWorkBook As Excel.Workbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkBook = objExcel.Workbooks.Add()
objExcel.Visible = True
Dim objSheet As Excel.Worksheet
Set objSheet = objExcel.Worksheets("sheet1")
objSheet.Cells(1, 1) = Text1.Text
objSheet.Cells(1, 2) = Text2.Text
objWorkBook.SaveAs App.Path & "\" & Time & ".xls"
objWorkBook.Close
objExcel.Quit
Set objSheet = Nothing
Set objWorkBook = Nothing
Set objExcel = Nothing
End Sub
運行時總是顯示“用戶定義型別未定義”。
請教各位高手,想要把運行資料保存到excel必須安裝Microsoft Office嗎?這種情況有什么方法可以解決嗎?
在之前曾試著把資料寫入.docx檔案,代碼如下:
Open "\Score.docx" For Append As #1
Print #1, "XX", JCorrect, "YY", LCorrect, "ZZ", SCorrect
Close #1
請問這樣可行嗎?
uj5u.com熱心網友回復:







uj5u.com熱心網友回復:
各位大神,幫忙啊啊啊

uj5u.com熱心網友回復:
f2,物件瀏覽器,查看WPS庫的類名稱;uj5u.com熱心網友回復:
我是新手,還請說的詳細些。
我把工程里關于wps和kingsoft的參考全加了。然后怎么辦呢?
uj5u.com熱心網友回復:
既然沒有安裝M$的 Office組件,卻要用M$的“型別”來開發,你不覺得這有問題?
我沒安裝WPS,具體細節不清楚。
但感覺WPS的“型別定義”跟MS肯定有區別的吧…………
建議的解決方式(只能說是“嘗試”一下):
首先把你那些“As Excel. xxxxx ”的,先全部改成 As Object
然后,去掉“On Error Resume Next”吧!!!!!!



寫程式是一件“十分嚴謹”的事,
豈能容你隨隨便便的 On Error Resume Next ????
uj5u.com熱心網友回復:
代碼改成這樣了:Option Explicit
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Private Sub Command1_Click()
'打開檔案
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & "模板檔案.xlsx")
Set xlSheet = xlBook.Worksheets(1)
'修改檔案
xlSheet.Range("a1") = "語文成績"
xlSheet.Range("b1") = "數學成績"
xlSheet.Range("a2") = Text1.Text
xlSheet.Range("b2") = Text2.Text
'保存并關閉檔案
xlBook.Save
xlBook.Close
End Sub
Private Sub Command2_Click()
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "檔案保存成功"
End Sub
對于wps,vb不認.cell().value的方法,但是.range 的方法可用。
現在的問題是每次保存都會把以前的資料覆寫,希望能每次保存都是在原來的資料下面加一行,該怎么辦呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/15133.html
標籤:VB基礎類
