[VB6 ] 請教巨集重覆執行的問題
各位前輩好!!
小弟目前遇到的問題: 將MSFlexGrid的內容轉存成excel檔案
下面為片段程式碼
*------
Dim objExcelApp As Excel.Application
Dim objSheet_VAC As Excel.Worksheet
在宣告這邊我沒有宣告Workbook
Set objExcelApp = CreateObject("ExcelApplication")
objExcelApp.Workbooks.Add '這裡新增一個工作簿
objExcelApp.Visible = True
objExcelApp.ActiveWorkbook.Worksheets.Add
Set objsheet_VAC = objExcelApp.ActiveWorkbook.Activesheet
objsheet_VAC.name = "VAC" '以下總共會新增三個sheet並重新命名
省略用一行表示
以下為執行巨集區塊
objSheet_VAC.Activate '設定目前focus在指定sheet
test '這邊是把excel錄製的巨集加入至VB6的模組內來呼叫
巨集內容只是做欄位合併跟調整字型
Set objExcelApp = Nothing
Set objSheet_VAC = Nothing
'----------
目前狀況是我資料都顯示在MSFlexGrid上,我去Click轉存excel的按鈕第一次巨集
可以正常執行,此時我畫面會出現excel表格並填上我要的資料與調整格式。
再來我excel不存檔直接關閉,再執行一次轉存excel的按鈕,這時候資料還是有
正常填寫進去,但是卻沒有執行巨集作格式調整,我有試著單步除錯,發現在我
第二次執行轉存excel按紐時,程式進入巨集的第一道程式碼就跳出巨集,
而第一道程式碼是 Range("A2:N2").Select
但我比較不懷疑是巨集的程式碼造成,不知道是不是第一次我把excel關閉,沒有正確
把excel釋放掉造成?
有請各位前輩替小弟我解惑, 謝謝
--
活在我不懂的道理
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.204.1
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1462866139.A.816.html
※ 編輯: rex921 (210.61.204.1), 05/10/2016 15:53:55
※ 編輯: rex921 (210.61.204.1), 05/10/2016 16:15:06
※ 編輯: rex921 (210.61.204.1), 05/10/2016 16:55:36
推
05/10 21:26, , 1F
05/10 21:26, 1F
→
05/10 21:26, , 2F
05/10 21:26, 2F
→
05/10 21:28, , 3F
05/10 21:28, 3F
我試試看!!感謝您。
※ 編輯: rex921 (61.227.199.184), 05/10/2016 22:34:40
最後是把所有Set xlsheet = XXX 都把他設定成nothing 還有相關的recordset也設定
處理程序就可以正常關閉了,
過程中發現,如果在VB6使用 sheet(1).select ,但是程式並沒有create這個名稱的話
整個 set nothing就不會成功,VB6對於excel的除錯功能好像沒那麼完善,
或者該說沒有@@!! 我是從頭create excel 然後關閉excel去驗證,慢慢複製舊的程式碼,
一行一行debug ...
※ 編輯: rex921 (210.61.204.1), 05/12/2016 10:56:54
再請教一個問題...
我用excel 2003錄製了一個巨集並匯出成.bas檔案,並加入VB6的模組
內容是選取所有儲存格,文字置中加粗的功能
以下是bas檔案的程式碼
Public Sub test()
Cells.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
End With
Selection.Font.Bold = True
End Sub
只要我在主程式區呼叫這個副程式,我的Excel處理程序就關不掉,
不知道是不是.bas這個副程式的寫法不完善?導致我的主程式下次
無法再正常執行這個副程式?
煩請前輩替小弟我解惑,謝謝!
※ 編輯: rex921 (210.61.204.1), 05/12/2016 11:32:15
推
05/12 19:37, , 4F
05/12 19:37, 4F
→
05/12 19:37, , 5F
05/12 19:37, 5F
→
05/12 19:38, , 6F
05/12 19:38, 6F
→
05/12 19:39, , 7F
05/12 19:39, 7F
的確,當我程式關閉程序都會自動關閉!!
→
05/12 19:44, , 8F
05/12 19:44, 8F
Selection是用excel錄製的巨集,還是得改成VB6看得懂得語法....
→
05/12 19:44, , 9F
05/12 19:44, 9F
VB6與excel版本還有VBA太糾纏不清了 ,不應該本是同根生嗎...哈哈
我換個作法,先自己弄一個空白的excel檔案,然後把格式跟巨集寫在裡面.
然後VB6開啟這個空白檔案把資料寫進去,另存新檔..user開啟檔案就會自動執行巨集
就可以把格式調整好了!!
終於把頭痛的問題搞定了!!謝謝前輩。
※ 編輯: rex921 (61.227.198.216), 05/12/2016 21:07:32
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章