![]()  | 
	
	PCDVD數位科技討論區
	(https://www.pcdvd.com.tw/index.php)
 
	-   七嘴八舌異言堂
	(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
 
	-   -   如何在電腦上同時跑多個巨集
	(https://www.pcdvd.com.tw/showthread.php?t=1018273)
  | 
    
  
|---|
	
		
 如何在電腦上同時跑多個巨集 
		
		
		
		Google找不到這個問題 
	我有個VBA寫的程式.是個模擬器, 我已把輸入的參數範圍切割成好幾個段落分開跑, 每個段落大概要跑24小時左右, 但我發現Excel在執行時只會佔用25%(四核心電腦) 也就是有75%是閒置的 所以我就想乾脆能否多開三個Excel同時多跑幾個段落,這樣會快些 但發現Excel一旦在跑巨集時,整個程式就鎖住了,根本不讓我開第二個, 有人有辦法解決嗎?  | 
	
		
  | 
	
		
 我只會手動的方式. 
	先從程式集開啟四個Excel空白程式 再各自開啟含巨集的.xls檔案 到工作管理員, 對著 Excel.exe按右鍵, 指定要使用CPU核心 這樣就可以同時讓四個核心跑巨集 不過如果程式要跑這麼久, 用正規程式語言跑multi thread不是比較好?  | 
	
		
 這模擬器有用到Excel的很多功能 
	用其他語言硬幹,會非常麻煩 另外你的方法不行喔 當你開了四格excel後按下第一個巨集執行時 整個excel就鎖住了 引用: 
	
  | 
	
		
 引用: 
	
 殺雞用牛刀, 開 VM 跑 :laugh: 不過我想應該有更好的辦法吧 :jolin:  | 
	
		
 引用: 
	
 可以用sleep 方法請參考2樓的網址  | 
	
		
 引用: 
	
 真的嗎? 我剛又測試了一下 兩個Excel的巨集會各自執行沒問題 請問你是先開啟四個"獨立"Excel程式嗎? 所謂獨立, 就是按Alt+F4關閉其中一個Excel時 其他Excel不會連帶一起自動關閉 如果是在檔案總管內直接點兩下檔案 這樣所有的 .xls會用同一個Excel程式來執行  | 
	
		
 我以前要處理這種問題時 
	是直接用 vb 寫程式呼叫excel 函式,做成執行檔 只要電腦夠強,愛開幾個都行 不過您vba已經寫好就不適合了,如果沒有一定的程式能力 要改成vb外部呼叫,可是大工程 剛剛查一下資料,發現excel 2007(或更新),有一個新功能 "多執行緒計算" 這樣只要開一個excel ,讓excel 自己去分配核心計算 我沒試過這個方法,所以請自行參考微軟說明 http://msdn.microsoft.com/zh-tw/library/office/bb687899(v=office.14).aspx  | 
	
		
 有影片有真相  
	[YOUTUBE]dM7s2JjQgyw[/YOUTUBE] :laugh: :laugh: :laugh: :laugh:  | 
	
		
 1個附加檔案 
		
		
		excel 2007 有多執行緒的選項 
	 | 
| 所有的時間均為GMT +8。 現在的時間是10:10 PM. | 
	vBulletin Version 3.0.1  
powered_by_vbulletin  2025。