我在工作簿(.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
答案 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。