2017-09-04 73 views
0

我有工作表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

哪條線給出錯誤?什麼是'Split()'函數試圖實現? – DMM

回答

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 
相關問題