返回列表 上一主題 發帖

為什麼程式跑到一半都會停住不繼續了?

為什麼程式跑到一半都會停住不繼續了?

最近利用一個excel活頁簿去操作其他個活頁簿

流程是這樣:

開啟活頁簿(主要的程式) --> 藉由VBA去開啟另外一個活頁簿(次要的)  --> 在次要的活頁簿上進行工作  --> 工作結束後再跳回主要的活頁簿,並將次要的活頁簿存檔關閉

程式有時候會跑到一半就停住了,從主活頁簿跳到次活頁簿就突然停住不繼續工作了,從新執行後又回復正常,雖然不是常發生,但想請問大家這是什麼原因呢?

謝謝

回復 1# sasho

列程式碼給大夥研究看看..

TOP

本帖最後由 sasho 於 2010-7-31 00:43 編輯

Workbooks.Open Filename:="C:\DATA\" & date & ".xls"
Workbooks(code & ".xls").Activate

在主要的活頁簿(book1.xls)執行上方的程式碼
上面兩行是我從原本的活頁簿(book1.xls)跳到專門在儲存資料的活頁簿(code,xls)所下的指令
後面接續的是一些處理的程序
程式常常會跑到這邊就停住不會往下跑了,,可以請問是什麼原因造成的嗎?
感謝

TOP

本帖最後由 basarasy 於 2010-7-31 08:46 編輯

回復 3# sasho

      試試在code.xls 的A1入                     =SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")
就會有code.xls 的LINK   
eg.  C:\code.xls
   
    Workbooks.Open Filename:="C:\code.xls"
MyCodeName= ActiveWorkbook.Name
Workbooks(MyCodeName).Activate
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 3# sasho


    Workbooks.Open Filename:="C:\DATA\" & date & ".xls"
Workbooks(code & ".xls").Activate

檔名是 日期+".xls" 還是 code +".xls"

估計你要的是
  1. Workbooks.Open Filename:="C:\DATA\" & code & ".xls"
  2. Workbooks(code & ".xls").Activate
複製代碼
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

不好意思 打錯了

應該是:
Workbooks.Open Filename:="C:\DATA\" & code & ".xls"
Workbooks(code & ".xls").Activate

其中code是變數,整個程式執行並不會有問題,因為整個跑下來並沒有錯誤發生
只是有時候程式執行後我就把excel丟在旁邊讓他自己跑,
然後去聊MSN
但有可能聊一聊就發現程式停住了沒有繼續跑
如果是程式執行後就沒有做其他事情的話那就不會發生以上的問題
所以想說,是不是利用VBA做多個活頁簿控制的時候,會有這樣的小bug產生?

TOP

回復 6# sasho


這個有很多可能性... 你確定是這句出問題嗎? 可否發一下完整代碼?
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

回復 6# sasho


Workbooks.Open Filename:="C:\DATA\" & code & ".xls"
Workbooks(code & ".xls").Activate
原則上Workbooks(code & ".xls").Activate這句是多餘的
執行Workbooks.Open Filename:="C:\DATA\" & code & ".xls"
作用中活頁簿就是Workbooks(code & ".xls")
你程式不跑要用逐行來偵錯

除非是Workbooks(code & ".xls").的檔案很大或有其他開啟問題
否則這2行是找不到問題的
學海無涯_不恥下問

TOP

感謝各位前輩的解答..

不過我想大家可能誤會我的意思了,我再說明一下好了

我目前利用一個excel當作主程式去控制其他(700多個)excel工作簿

將所有的程式碼通通寫在主程式當中,其他的活頁簿就只是當作資料庫作儲存而已

這個程式跑起來的時候,如果沒有去使用MSN的話,是沒有問題的

問題是,當我把程式開啟後,丟在旁邊執行而視窗則拉到MSN聊天的話

那程式就會跑到一半就停住(停住而已,並沒有出現錯誤訊息)

而停住的地方就是在關閉上一個當作資料庫的活頁簿,開啟新的資料庫活頁簿之後

開啟之後就停住了,本來應該會有後續的操作,但在這種情況時,程式就不會繼續跑了

所以我想,應該不是自己寫的程式碼有什麼問題(因為如果不使用MSN可以很順利跑完)

可以請教大家是什麼原因嗎?

謝謝

P.s 總共有將近700M的檔案,所以不方便上傳,sorry

TOP

就如hsieh大所說,
你可以先試試用偵錯模式來跑,
發現程式停了, 可以按ctrl+break把程式停一下, 看看停在那裡.

你也可以只發一下代碼上來看看的~
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題