下面是我在不使用VBA代码的情况下保存文件的代码。
它与VBA代码一起保存。
Sheets.Select
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.DisplayAlerts = False
ThisWorkbook.SaveAs "C:UserssgffaDesktopProfile_MacrosNEW" & NFolder & "" & "C",
FileFormat:=xlExcel8
Application.DisplayAlerts = True
Next x
End Sub
将项目保存为xlsx而不是xlsm,则代码应保存为
您可以先在新工作簿中复制工作表,然后将其保存为
Sheets.Copy
Sheets.Select
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs "C:UserssgffaDesktopProfile_MacrosNEW" & NFolder & "" & "C.xlsx"
Application.DisplayAlerts = True
.Close True
End With
来自
ThisWorkbook.SaveAs "C:UserssgffaDesktopProfile_MacrosNEW" & NFolder & "" & "C", FileFormat:=xlExcel8
到此:
ThisWorkbook.SaveAs "C:UserssgffaDesktopProfile_MacrosNEW" & NFolder & "" & "C" & ".xlsx", FileFormat:=xlOpenXMLWorkbook
另存为困惑
我也很困惑。碰巧的是,当您将启用宏的工作簿(.xlsm(保存为未启用宏的工作薄(.xlsx(时,工作簿会保持打开状态,其中仍有代码。但好的是,它保存时没有代码。你现在可以保存它,"手动"保存为它,下次打开它时它仍然没有代码(宏(。
代码应演示以下内容:
- 最好从
Option Explicit
开始,这将有所帮助当出现问题时提醒你 - 在代码的开头使用常量是一种很好的做法,尤其是对于如此长的文件路径,因此当您必须更改它们时你可以很容易地找到它们
- 当您禁用某个事件时,您可能无法如果你不小心,可以再次启用它。如果发生错误,您应该重定向再次启用这些事件的代码
- 如果要关闭工作簿,请使用行
ThisWorkbook.Close
Option Explicit
Sub SaveMacroDisabled()
Const strPath = "I:ExcelMyDocumentsTestTest4"
Const strXLSX = "BookMacroDisabled"
On Error GoTo ProgramError
Application.DisplayAlerts = False
ThisWorkbook.SaveAs strXLSX, _
FileFormat:=xlWorkbookDefault
SafeExit:
Application.DisplayAlerts = True
' ThisWorkbook.Close
Exit Sub
ProgramError:
MsgBox "An unexpected error occurred"
On Error GoTo 0
GoTo SafeExit
End Sub