![](/img/trans.png)
[英]code added to a xlsm worksheet while saving in VBA keeps diapearing
[英]Saving Excel Sheet with code as xlsm looses the code
我正在動態創建表格,效果很好。 創建的工作表之一確實包含使用 VBA 插入的 VBA (Worksheet_Activate),也可以完美運行。
現在我正在嘗試保存創建的文件,while循環用於強制保存我嘗試過:
While Not workbookUsed.Saved
Dim filePath As String
filePath = Application.GetSaveAsFilename(fileFilter:="Excel File mit Makro (*.xlsm), *.xlsm")
If VarType(filePath) = vbString Then
workbookUsed.SaveAs _
FileName:=filePath, _
FileFormat:=52
End If
Wend
End Sub
我嘗試使用
Application.FileDialog(msoFileDialogSaveAs)
方法。
兩者都工作並創建一個 .xlsm 文件,其中包含所有生成的內容,除了工作表上的 VBA 代碼,它就像普通的 .xlsx 文件一樣是空的。
有趣的是,如果您在保存文件后停止該過程,並按 ctrl+s Excel 會識別出某些內容已更改並保存整個工作簿。
但是如果我在使用之后關閉工作簿
workbookUsed.Close
我再次得到一個文件,其中沒有 VBA 代碼,即使我將它設置為關閉時不保存。
那么是否需要設置任何特殊參數,以便保存整個工作簿,包括 vba 內容?
例如,您可以將代碼保存在名為SaveWorkbook
的單獨過程中,並在主過程的末尾使用以下代碼:
Application.OnTime Now + TimeSerial(0, 0, 2), "SaveWorkbook"
這將安排保存文件的過程在 2 秒后運行,並讓 Excel 在保存之前有時間處理對 VBproject 的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.