2016-10-20 7 views
0

シートを新しいブックとして保存するが、セーブ名を変更できるかどうかを知りたい場合は、セル内のシート1の値にマクロを実行するたびに B2と特定のファイルの場所に移動します。VBAを使用してシートをブックにする

私は以下の方法で試してみましたが、指定したファイルの場所に保存するのではなく、単にファイルの場所の名前でファイルを保存するだけです。

Sub sb_Copy_Save_Worksheet_As_Workbook() 
    Dim wb As Workbook 
    Set wb = Workbooks.Add 
    ThisWorkbook.Sheets("Sheet2").Copy Before:=wb.Sheets(1) 
    wb.SaveAs "C:\temp\test1.xlsx" 
End Sub 

すべてのヘルプは大

多くのおかげ

ジェイミー

+0

ファイル名は** B2 **です。ファイル名はどこに保存されていますか? –

答えて

0

このようなパス文字列にセル値に追加してみてくださいいただければ幸いです。

Sub sb_Copy_Save_Worksheet_As_Workbook() 
    Dim wb As Workbook 
    Set wb = Workbooks.Add 
    ThisWorkbook.Sheets("Sheet2").Copy Before:=wb.Sheets(1) 
    wb.SaveAs "C:\temp\" & ThisWorkbook.Sheets("Sheet2").Range("B2").Value 
End Sub 

ファイル拡張子を元のファイルがある場合でも、デフォルト値は.xlsxになります.xlsmですので、これをパス文字列に追加する必要はありません。

1

さんは「シート1」は、細胞B2値「TEST1」(ファイル名)で、その後、あなたは次のように使用することができたとしましょう:

Sub sb_Copy_Save_Worksheet_As_Workbook() 
    Dim wb As Workbook 
    Dim myPath As String 
    Dim myFilename As String 
    Dim myFileExtension As String 
    myPath = "C:\temp\" 'you can change this 
    myFileExtension = ".xlsx" 
    myFilename = ThisWorkbook.Sheets("Sheet1").Range("B2").Value 
    Set wb = Workbooks.Add 
    ThisWorkbook.Sheets("Sheet2").Copy Before:=wb.Sheets(1) 
    wb.SaveAs myPath & myFilename & myFileExtension 
    wb.Close False 
End Sub 

あなたのセルB2が既にファイル拡張子が含まれている場合(したがって、B2の "test1.xlsx"です)、コードからmyFileExtension部分を削除するだけです。

ファイルを保存するフォルダが存在する必要があります。これを確認したり、マクロにフォルダを作成したりする必要がある場合は、コメントを残してください。

+0

パーフェクトこれまでずっと –

+0

ありがとうございました。あなたはそのSubを実行できる方法がありますか?上記を実行して元のワークブックに戻すことはできますか? –

+0

これは実際に行われます。最後の行 'wb.Close False'は、Sheet2を含む作成されたブックを閉じます。したがって、まだ開いておくべき唯一のブックは、マクロを実行しているブックだけです。 –

関連する問題