2011-01-12 60 views
1

我在一天中開發一些VBA宏 - 500行代碼。代碼被放置到Global.mpt中,因爲我將在不同的項目文件中重複使用它。MS Project 2010 - 如何恢復宏(腐敗?)Global.MPT

在某個時刻,我錯過了在while循環中增加循環。調試時,這使MS Project進入了無盡的無響應100%-CPU使用循環。我不得不從任務管理器殺死MS項目,重新啓動後,我在Global.mpt中看不到VBA模塊。我在現有的Global.MPT中看到了我的變量和過程的名稱,但沒有明確的代碼可以手動恢復。

當我嘗試將Global.MPT重命名爲MyGlobal.MPT並將其打開時,MS Project顯示'Organizer'對話框提示將內容從MyGlobal.MPT導入到Global.MPT,但'Modules'選項卡顯示空白列表什麼都不要輸入。

有沒有辦法修復或從文件中導出VBA內容?我不想失去工作:(

+0

目前的進展是 ...試圖從VBA代碼帶來的文件打開'Organizer'對話框 ...嘗試從VBA基於給定模板創建新項目導致「無法基於全局模板創建新文件」 ...在HEX編輯器中打開.mpt文件後,將標記ject.GLOBAL14更改爲ject.MPP14(如.mpp文件中的文件)文件將打開,但'MyGlobal.mpp已被保護'對話框並要求輸入密碼:( – 2011-01-12 22:41:41

回答

0

對於referrence的一天 - 一個名爲MyModule的模塊具有以下內容

Sub HelloWorld() 
    MsgBox 'HelloWorld' 
End Sub 

貌似VBA流在以下

0012BA04 01 16 01 00 02 F0 00 00 00 BC 02 00 00 D4 00 00 |................| 
0012BA14 00 B0 01 00 00 FF FF FF FF EA 02 00 00 8A 03 00 |................| 
0012BA24 00 00 00 00 00 01 00 00 00 7D 0A CF 43 00 00 FF |.........}..C...| 
0012BA34 FF 03 00 00 00 00 00 00 00 B6 00 FF FF 01 01 00 |................| 
0012BA44 00 00 00 FF FF FF FF 00 00 00 00 FF FF 04 00 FF |................| 
0012BA54 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BA64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BA74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BA84 00 00 00 00 00 00 00 10 00 00 00 03 00 00 00 05 |................| 
0012BA94 00 00 00 07 00 00 00 FF FF FF FF FF FF FF FF 01 |................| 
0012BAA4 01 08 00 00 00 FF FF FF FF 78 00 00 00 02 00 00 |.........x......| 
0012BAB4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BAC4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF |................| 
0012BAD4 00 00 00 00 4D 45 00 00 FF FF FF FF FF FF 00 00 |....ME..........| 
0012BAE4 00 00 FF FF 00 00 00 00 FF FF 01 01 00 00 00 00 |................| 
0012BAF4 DF 00 FF FF 00 00 00 00 04 00 FF FF FF FF FF FF |................| 
0012BB04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB14 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB24 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB34 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB44 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB54 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB64 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BB74 FF FF FF FF FF FF FF FF FF FF 28 00 00 00 00 00 |..........(.....| 
0012BB84 36 0A FF FF FF FF 00 00 00 00 02 3C 08 00 FF FF |6..........<....| 
0012BB94 00 00 00 00 02 3C 0C 00 FF FF 00 00 00 00 02 3C |.....<.........<| 
0012BBA4 FF FF FF FF 00 00 FF FF 01 01 00 00 00 00 00 00 |................| 
0012BBB4 01 00 00 00 FF FF FF FF 01 01 80 00 00 00 38 00 |..............8.| 
0012BBC4 00 00 FF FF FF FF 02 83 1C 02 FF FF FF FF 08 00 |................| 
0012BBD4 FF FF 30 00 00 00 00 00 FF FF FF FF FF FF 00 00 |..0.............| 
0012BBE4 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 1D 00 |................| 
0012BBF4 00 00 25 00 00 00 0B 12 1E 02 FF FF FF FF 00 00 |..%.............| 
0012BC04 00 60 00 00 00 00 FF FF FF FF FF FF FF FF 00 00 |.`..............| 
0012BC14 00 00 00 00 00 00 FF FF FF FF 7C FF 00 00 FF FF |..........|.....| 
0012BC24 FF FF FF FF FF FF FF FF FF FF 03 00 03 00 00 00 |................| 
0012BC34 84 00 00 03 00 00 FF FF FF FF C0 01 00 00 01 00 |................| 
0012BC44 01 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 |..............8.| 
0012BC54 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BC64 FF FF FF FF FF FF 38 00 00 00 FF FF FF FF FF FF |......8.........| 
0012BC74 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BC84 FF FF FF FF FF FF 08 00 00 00 00 00 00 00 01 00 |................| 
0012BC94 00 00 08 00 04 00 FF FF FF FF 00 00 00 00 FF FF |................| 
0012BCA4 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................| 
0012BCB4 FF FF FF FF FF FF 02 00 00 00 00 00 E4 E7 C5 4E |...............N| 
0012BCC4 0E 00 01 24 00 2A 00 5C 00 52 00 66 00 66 00 66 |...$.*.\.R.f.f.f| 
0012BCD4 00 66 00 2A 00 30 00 3F 00 34 00 65 00 63 00 35 |.f.*.0.?.4.e.c.5| 
0012BCE4 00 65 00 37 00 65 00 39 00 DF 00 00 00 00 00 00 |.e.7.e.9........| 
0012BCF4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BD04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BD14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 
0012BD24 00 00 00 00 00 00 FE CA 01 00 03 00 22 81 08 00 |............"...| 
0012BD34 06 00 00 00 00 00 00 00 00 81 08 04 18 00 00 00 |................| 
0012BD44 10 00 00 00 04 81 08 00 02 00 00 00 08 00 00 00 |................| 
0012BD54 FF FF FF FF 01 01 30 00 00 00 96 04 38 00 00 00 |......0.....8...| 
0012BD64 00 00 6F 00 FF FF 70 00 00 00 41 40 22 02 00 00 |[email protected]"...| 
0012BD74 E0 00 0B 00 0B 00 48 65 6C 6C 6F 57 6F 72 6C 64 |......HelloWorld| 
0012BD84 27 00 FF FF FF FF 50 00 00 00 FF FF FF FF 00 00 |'.....P.........| 
0012BD94 01 52 B0 00 41 74 74 72 69 62 75 74 00 65 20 56 |.R..Attribut.e V| 
0012BDA4 42 5F 4E 61 6D 00 65 20 3D 20 22 4D 79 4D 00 6F |B_Nam.e = "MyM.o| 
0012BDB4 64 75 6C 65 22 0D 0A 00 53 75 62 20 48 65 6C 6C |dule"...Sub Hell| 
0012BDC4 00 6F 57 6F 72 6C 64 28 29 08 0D 0A 20 00 00 4D |.oWorld()... ..M| 
0012BDD4 73 67 42 10 6F 78 20 27 07 64 27 0D 0A 10 45 6E |sgB.ox '.d'...En| 
0012BDE4 64 20 00 5C 0D 0A        |d .\..| 
0

其他的解決方案,以恢復從另一臺計算機上打開或修復用戶配置文件,它可能已損壞,如果您可以使用其他用戶名登錄到PC並嘗試打開文件,祝您好運,

OR:

1]轉到文件 - >選項 - >信任中心 - >單擊信任中心設置 - >選擇選項「允許使用傳統或非默認文件格式加載文件」和嘗試打開文件。

2]打開一個空白項目並嘗試插入有問題的文件,然後嘗試打開它。

0

最簡單的方法是簡單地將文件擴展名更改爲MPP並將其作爲項目打開。組織者會提出並詢問您是否要將MPP的宏和代碼複製到新的(空白)MPT文件中。只要滑過它們,你就像金子一樣好(你必須重置你的參考,否則,準備去)