題 如何將.xlsm轉換為.xls而不丟失宏?


我有一個帶有宏的excel文件(.xls),它不是由我創建的。我按下Alt + F11並嘗試展開VBA項目,但係統提示我輸入“Enter Password”彈出窗口。宏也似乎有效。

另一方面,我有另一個宏啟用excel(.xlsm)我無法將此文件保存為.xls並保留宏。

可以這樣做嗎? 在啟用宏的情況下將文件轉換為.xls?

我有MS Office 2010以及MS Office 2016版本。

我希望文件是.xls文件格式的文件處理庫NPOI可以從我的ASP.net MVC應用程序讀取和寫入文件。我不允許去另一個可以處理.xlsm文件的庫。

警告我面對: enter image description here


4
2017-10-14 04:56


起源




答案:


如果要以舊* .xls格式保存* .xlsm文件,則需要在“另存為”對話框中選擇適當的文件類型。

enter image description here

Excel 97-2003工作簿不會對啟用宏的文件使用不同的文件擴展名,並且將保留文件中的所有VBA。請注意,如果您使用舊版本無法解釋的較新文件中的功能,則可能會丟失功能。

發布截圖後編輯:

第一個警告是關於數據驗證。第二個是別的,但肯定不是關於VBA。您的VBA將進入.xls文件,您需要運行它以查看代碼是否存在問題。這些版本之間沒有很多VBA命令更改,因此代碼可能運行正常。


2
2017-10-14 05:02



正如你所提到的,當我嘗試將其保存為.xls時,我被提示功能丟失,這就是我發布查詢的原因。 - RandomUser
功能丟失並不意味著宏不會存在。為什麼需要以舊格式保存?如果您需要舊格式,則應使用舊格式進行開發。 - teylyn
就像我在問題中提到的那樣,我沒有創建文件,我需要將文件放在.xls中,以便我現有的實現順利運行..感謝您的努力,雖然我很感激。 - RandomUser
@RandomUser您是否真的嘗試保存文件,然後查看結果? - Daniel B
@RandomUser警告並不是那麼具體。這就是原因:嘗試一下。你仍然會有原始文件,所以什麼都不會丟失。 - Daniel B