我在Excel中創建了一個VBA項目,並且在所述項目中是一個將代碼寫入另一個模塊的模塊。我最終密碼保護了項目,以便隱藏代碼(不會馬上意識到這會造成一些非常明顯的問題)。將VBA過程/函數寫入.xlam插件
當用戶與文件交互時,模塊會嘗試運行代碼,但遇到錯誤(密碼保護的項目無法自行修改!嘿,我們都有我們的時刻:p)。
因此,爲了解決這個問題,我想'爲什麼不讓編輯的部分不受保護',同時保持文件的其餘部分被鎖定。所以我想我會創建一個不受保護的.xlam加載項,然後將所述代碼寫入該部分。然而,我有一些困難想辦法做到這一點。下面是我寫的代碼,編寫代碼到另一個模塊:
Public Sub errorWrite()
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim s As String
Dim d As String
Dim lineNumb As Long
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "Public sub newModule()"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "(my code etc..)"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "end sub"
end sub
雖然我發現對堆棧的一些信息和其他有關例如.xlam插件(Updating an xlam add-in using VBA),我寧願只是不停地儘可能簡單。建議和提示非常感謝。謝謝!
當使用上述如你所說,我得到一個運行時錯誤「9」,下標超出範圍。根據excel,外掛程序已安裝,我還使用了一個獨特的外掛程序名稱,並帶有.xlam擴展名,沒有運氣:/ – Singularity20XX