【问题标题】:Copy-save a sheet in a new workbook named after contents of some specific cells from that same sheet将工作表复制保存到以同一工作表中某些特定单元格的内容命名的新工作簿中
【发布时间】:2019-08-02 23:47:43
【问题描述】:

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

我在这里和那里找到代码来从工作表创建新工作簿,或者重命名现有工作簿。我试图“混合”它,但我坚持使用“文件名:=名称”参数。它返回一个错误。我命名新工作簿的唯一方法是使用“”。如果有人知道原因并有任何修复指导,将不胜感激。

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

【问题讨论】:

    标签: excel vba copy save rename


    【解决方案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。

    【讨论】:

    • 完美运行,非常感谢!我会尽快发布您的修复答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多