将工作表复制并保存在新工作簿中,该工作簿以同一工作表中某些特定单元格的内容命名。

时间:2019-03-12 13:26:38

标签: excel vba copy save rename

我在工作簿(.xlsm)中有一个工作表,我想在新工作簿(.xlsx)中“复制”。在此过程中,我还需要以同一工作表中的单元格B3和B5命名新工作簿。

我在这里和那里找到了代码,可以从工作表中创建新工作簿,也可以重命名现有工作簿。我试图将其“混合”,但是我坚持使用“ Filename:= Name”自变量。它返回一个错误。我命名新工作簿的唯一方法是使用“”。如果有人知道原因并有任何修复指导,我们将不胜感激。

Sub Copy_Save_Sheet_As_Workbook()

Dim wb As Workbook
Dim Path As String
Dim Name As String

Set wb = Workbooks.Add
Path = "C:\Users\..." 'That line is not used now. Will try later to work on it.
Name = Worksheets("Sheet1").Range("B5")

ThisWorkbook.Activate
Worksheets("Sheet1").Copy Before:=wb.Sheets(1)
wb.Activate
wb.SaveAs FileName:=Name & ".xlsx", FileFormat:=xlNormal

End Sub

==编辑==

这是CATSandCATSandCATS修复后的修改后的代码。

Sub Copy_Save_Sheet_As_Workbook()

Dim wb As Workbook

Set wb = Workbooks.Add

ThisWorkbook.Activate
Worksheets("Sheet1").Copy Before:=wb.Sheets(1)
wb.Activate
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("B3") & Range("B5") & ".xlsx"

End Sub

1 个答案:

答案 0 :(得分:1)

尝试一下:

ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("B3") & Range("B5") & ".xlsx"

代替:

wb.SaveAs FileName:=Name & ".xlsx", FileFormat:=xlNormal

显然,您可以在文件中添加更多内容,例如日期:

& Format(Now, "mm.dd.yyyy")

或文本:

& "1Q2019 - March Budget"

如果不想将其保存在包含宏的文件所在的位置,则只需添加“ C:\ Users ...”即可代替ThisWorkbook.path。