我找到了以下代码来保存工作表作为新工作簿,但我想知道是否可以更改存储名称 每次宏运行到单元格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
非常感谢任何帮助
非常感谢 杰基答案 0 :(得分:1)
假设“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
部分即可。
您要保存文件的文件夹必须存在。如果您需要帮助检查或在宏中创建文件夹,请发表评论。
答案 1 :(得分: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
,因此您无需将其添加到路径字符串中。