我有一张表BU。在表BU中我有4个按钮。在4个按钮中,我有一个名为Save的按钮。
使用此保存按钮,我将表单BU保存在特定文件夹中。
BU是一个Xlsm文件,我想将相同的表单BU保存为xlsx。
我有以下代码。但每次我试图实现时,我都会收到一个名为
的错误以下宏无法保存在宏免费工作簿中。
有人能帮我解决这个问题吗?
我正在使用下面的程序,我也尝试在xlsm中保存,它可以工作
Sub save()
Dim myWorksheets() As String
Dim newWB As Workbook
Dim CurrWB As Workbook
Dim i As Integer
Dim path1, Path2 As String
path1 = ThisWorkbook.Path
Path2 = path1 & "\Arc\Mat\"
Set CurrWB = ThisWorkbook
myWorksheets = Split("BU", ",")
For i = LBound(myWorksheets) To UBound(myWorksheets)
Set newWB = Workbooks.Add
CurrWB.Sheets(Trim(myWorksheets(i))).Copy Before:=newWB.Sheets(1)
newWB.SaveAs filename:=Path2 & Format(Now(), "ww") & myWorksheets(i) & ".xls"
newWB.Close SaveChanges:=False
Next i
Application.ScreenUpdating = False
MsgBox ("File Saved")
End Sub
答案 0 :(得分:1)
像这样:
Sub save()
Dim newWB As Workbook
Dim CurrWB As Workbook
Dim i As Integer
Dim path1, Path2 As String
path1 = ThisWorkbook.Path
Path2 = path1 & "\Arc\Mat\"
Set CurrWB = ThisWorkbook
myWorksheets = Split("BU", ",")
For i = LBound(myWorksheets) To UBound(myWorksheets)
Set newWB = Workbooks.Add
CurrWB.Sheets(Trim(myWorksheets(i))).Copy Before:=newWB.Sheets(1)
'Prevent message about VBA:
Application.DisplayAlerts = False
newWB.SaveAs Filename:=Path2 & Format(Now(), "ww") & myWorksheets(i) & ".xlsx", FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
newWB.Close SaveChanges:=False
Next i
Application.ScreenUpdating = False
MsgBox ("File Saved")
End Sub
如果它总是BU表,可以缩短为:
ThisWorkbook.Worksheets("BU").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Arc\Mat\" & Format(Now(), "ww") & " BU.xlsx", FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
ActiveWorkbook.Close SaveChanges:=False