表單2放的代碼如圖,開始運行時,表單1出現,點擊表單1按鈕1卸載表單1卸載,出現表單2,錄入相關資料,點擊表單2的按鈕1生成的excel作業簿,正常保存。再點擊表單2的按鈕2,正常卸載表單2,出現表單1。一個回圈完成。當再次點擊表單1的按鈕1,表單1卸載,表單2出現,錄入資料后,點擊表單2的按鈕1。就會出錯,提示實時錯誤91,物件變數塊或with塊變數未設定。全部退出重新運行就不會報錯(我在里面放了一個dot.xls的模板excel作業簿)。另外,代碼最后怎么才可以測底結束excel.exe行程?我的代碼這樣的,麻煩幫忙改一改。萬分感謝。
Private Sub Command1_Click()
Dim xlApp As New Excel.Application '定義并創建EXCEL物件
Dim xlBook As Excel.Workbook '創建作業簿
'xlapp.DisplayAlerts =False
xlApp.Visible = True '讓Excel可見
Set xlBook = xlApp.Workbooks.Open(App.Path & "/dot.xls") '打開Excel模板
With xlBook.ActiveSheet
.Range("b4") = Text1.Text '填充第一行第一列的值
.Range("i4") = Text2.Text ' 填充其他行列的值,具體的填充位置得根據模板來做
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=1234 '表格設定密Set excel_Book = excel_App.Workbooks.Open(App.Path & "\dot.XLS")
ChDir "D:\評定表牧牛科技"
Dim a As Long
ActiveWorkbook.SaveAs FileName:="D:\評定表牧牛科技\" & Text1.Text & Text2.Text & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Excel.ActiveWorkbook.Close
Set excel_App = Nothing
End Sub
uj5u.com熱心網友回復:
首先,加斷點看報錯的是哪一行。其次,在Set excel_App = Nothing前建議先關閉excel_App 物件,即excel_App.Close
uj5u.com熱心網友回復:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=1234 '表格設定密Set excel_Book = excel_App.Workbooks.Open(App.Path & "\dot.XLS")這一行開始報錯。
本代碼第一次運行沒有問題。再次運行時報錯,原因是:第一次運行后excel.exe仍在行程中。所以才這樣;如果我在任務管理器中手動結束excel.exe,又會出現實時錯誤462遠程服務器不存在或不能使用。
uj5u.com熱心網友回復:
好像應該是 excel_App.Quit ;
uj5u.com熱心網友回復:
對對對,是quit
uj5u.com熱心網友回復:
不行,試了很多方法uj5u.com熱心網友回復:
你定義的EXCEL物件名是xlApp,為什么最后關閉的變成了excel_App ?改好了,試一下。Private Sub Command1_Click()
Dim xlApp As New Excel.Application '定義并創建EXCEL物件
Dim xlBook As Excel.Workbook '創建作業簿
'xlapp.DisplayAlerts =False
xlApp.Visible = True '讓Excel可見
Set xlBook = xlApp.Workbooks.Open(App.Path & "/dot.xls") '打開Excel模板
With xlBook.ActiveSheet
.Range("b4") = Text1.Text '填充第一行第一列的值
.Range("i4") = Text2.Text ' 填充其他行列的值,具體的填充位置得根據模板來做
End With
xlBook.ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=1234 '表格設定密Set excel_Book = excel_App.Workbooks.Open(App.Path & "\dot.XLS")
ChDir "D:\評定表牧牛科技"
Dim a As Long
xlBook.SaveAs FileName:="D:\評定表牧牛科技\" & Text1.Text & Text2.Text & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
xlApp.Quit
Set xlApp = Nothing
End Sub
uj5u.com熱心網友回復:
在運行前,先 on error resume next 下kill excel行程再開始你的業務
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/26894.html
標籤:VB基礎類
上一篇:VB6的文本框亂碼怎么解決?
下一篇:關于陣列下標越界疑問,多謝
