2017-08-03 9 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

これはおそらく完全な問題ではありませんが、「Dim path1 as String、path2 as String」と定義してください。 – PGCodeRider

答えて

0

@ジェニー - このコードは、あなたが質問した内容を達成し、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

関連する問題