2017-08-03 87 views
-1

我想从我的工作簿到另一个工作簿保存特定的工作表,并试图将其保存在我的当前工作簿的路径特定的表。保存选项是这样的,它应该与dd.mm.yyyy一起保存。保存从一个工作簿到另一个特定文件夹

我尝试下面的代码和我得到的应用程序定义的错误在该行

> newWB.SaveAs filename:=Path2 & Format(Now(), "yyyymmdd") & 
> myWorksheets(i), FileFormat:=xlsx 

能否请你帮我找出我在哪里错了?

Sub save() 
Dim myWorksheets() As String 'Array to hold worksheet names to copy 
Dim newWB As Workbook 
Dim CurrWB As Workbook 
Dim i As Integer 
Dim path1, Path2 
path1 = ThisWorkbook.Path 
Path2 = path1 & "\TT" 
Set CurrWB = ThisWorkbook 
myWorksheets = Split("Report", ",") 
For i = LBound(myWorksheets) To UBound(myWorksheets) 'Go through entire array 
     Set newWB = Workbooks.Add 'Create new workbook 
     CurrWB.Sheets(Trim(myWorksheets(i))).Copy 
     newWB.SaveAs filename:=Path2 & Format(Now(), "yyyymmdd") & myWorksheets(i), FileFormat:=xlsx 
     newWB.Close saveChanges:=False 
Next i 
CurrWB.Save 'save original workbook. 
End Sub 
+0

乍一看,我会说你是传递了'FileFormat'参数是不正确的。 – braX

+0

还要记住,您的路径需要以反斜杠结束。 – braX

+0

这可能是不完整的问题,但定义'点心PATH1为字符串,如PATH2 String' – PGCodeRider

回答

0

@Jenny - 这段代码将完成你在问题中提出的问题,它会将ActiveSheet保存为一个新文件;并且可以用作可以在代码中调用的函数。您可以更改“Rpt”以标识新工作簿的标题。当我编写vba代码时,我总是试着按照母亲的说法对我说:“简单点吧”。

Application.DisplayAlerts = False 
Dim wbPath As String 
wbPath = ThisWorkbook.Path 

    ActiveSheet.Copy 
    ActiveWorkbook.SaveAs Filename:=wbPath & "\" & "Rpt" & " " & Format(Date, "yyyymmdd") & ".xlsx", _ 
    FileFormat:=51, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False 

Application.DisplayAlerts = True 
+0

我会尝试尽快给您 – Jenny

相关问题