【问题标题】:How do I save a worksheet to a new workbook?如何将工作表保存到新工作簿?
【发布时间】:2018-01-02 05:16:40
【问题描述】:

我正在尝试将单个工作表保存到新工作簿(VBA 应该创建一个新工作簿)。

代码正在运行,新的工作簿正在弹出,其中包含所需的数据,另存为对话框窗口也打开了,但是当我选择名称并保存文件时,找不到新工作簿,新工作簿保持打开状态(Book1 或任何自动填充)。

我希望在对话窗口打开时自动填充另存为名称,并让它引用原始工作簿中的两个单元格(即 $A$11、$B$11)。

这是我的 VBA:

Option Explicit

Sub SaveConsolidatedDemandData()
    ' Macro2 Macro
    'Dim NameFile As Variant
            'With Worksheets("SO1")
            'NameFile = .Range("M3") & "_" & .Range("C11") & "_" & .Range("B22") & ".xls"
    'End With

    Application.ScreenUpdating = False
    '
    '
        Sheets("Consolidation").Select
        Sheets("Consolidation").Copy
        Application.GetSaveAsFilename


    Application.ScreenUpdating = True

End Sub

【问题讨论】:

标签: excel vba reference save


【解决方案1】:

这是一个显示/执行您要求的宏。根据需要更改工作簿名称和工作表名称:

Sub test()
Dim wb, wbnew As Workbook 
Dim ws As Worksheet
Dim filename As String

Set wb = Workbooks(2)  'Name of the workbook you are copying from
Set ws = wb.Sheets("Sheet1") 'Name of sheet you are copying
filename = ws.Range("A11") & "_" & ws.Range("B11")& ".xlsm"
'adds new workbook
Set wbnew = Workbooks.Add
wb.Activate

'copies sheet to new workbook
    wb.Sheets("Sheet1").Copy Before:=wbnew.Sheets(1)

'Save as dialog box to save as excel file
Application.Dialogs(xlDialogSaveAs).Show filename

wbnew.Close

End Sub

【讨论】:

  • 这给我一个“下标超出范围”错误。我不得不使用After 而不是Before。复制到新工作簿时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
相关资源
最近更新 更多