我正在使用以下代碼片段來保存電子表格,並將其設置爲僅值並重新保存。但是,工作簿打開然後宏停止運行。爲什麼新的工作簿打開時宏停止運行?
這是爲什麼?我該如何阻止它?我試過設置ScreenUpdating = False
無濟於事。
Sub saveReport()
Dim nwkbk As Workbook
Dim thsWkbk As Workbook
Set thsWkbk = ThisWorkbook
nwkbkPath = thsWkbk.Path & "\x. Archive\" & Format(Date, "YYYY-MM-DD - ") & thsWkbk.Name
ApplicationDisplayAlerts = False
thsWkbk.SaveCopyAs nwkbkPath
Set nwkbk = Workbooks.Open(nwkbkPath, False)
For w = 1 To nwkbk.Sheets.Count
nwkbk.Sheets(w).UsedRange = nwkbk.Sheets(w).UsedRange.Value
Next w
For wsp = 1 To nwkbk.Sheets.Count
nwkbk.Sheets(wsp).Protect Password:="SettleDownBenny"
Next wsp
Application.DisplayAlerts = False
nwkbk.Save
nwkbk.Close
End Sub
我認爲你有一個錯誤的'nwkbkPath = thsWkbk.Path& 「\ X檔案\」 &格式(Date 「YYYY-MM-DD - 」 )&thsWkbk.Name',你有一個文件夾「x。Archive」嵌套在這個Excel文件的當前路徑下嗎? –
在您的_original_工作簿中有一些事件處理程序嗎?他們會被複制到新的工作簿中,並干擾正在運行的宏:嘗試將其保存爲普通的xlsx文件,因此沒有宏存活 – user3598756
@ user3598756正確。我有一個AutoOpen方法,只要打開電子表格就會運行。好拿起。你如何保存副本,但選擇格式?與VBA結合使用時,Excel的管理非常荒謬。 – AER