工作簿使用VBA

我发现下面的代码将工作表保存为新的工作簿,但是我想知道是否有可能更改保存名称每次macros运行到单元格B2中的工作表1上的值和特定的文件位置。

我已经尝试了下面的方式,它只是简单地将文件保存在文件位置的名称,而不是将其保存在指定的文件位置。

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 

任何帮助将不胜感激

非常感谢

杰米

假设“Sheet1”在单元格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部分即可。

您要保存文件的文件夹必须存在。 如果您需要帮助检查这个或在macros中创build文件夹,请留下评论。

尝试将单元格值添加到pathstring,如下所示:

 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 

即使原始文件是.xlsm ,文件扩展名也将默认为.xlsx因此您不需要将其添加到pathstring中。