在文件夹中保存特定工作表时出错

时间:2017-09-04 15:25:52

标签: excel vba excel-vba

我有一张表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

1 个答案:

答案 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