VBA:将工作表另存为新工作簿

时间:2017-07-26 18:07:32

标签: excel-vba reference save vba excel

希望这对社区来说很简单。

我正在尝试将单个工作表保存到新工作簿(VBA应该创建一个新工作簿)。 代码正在运行,新工作簿弹出所需的数据,并且还会打开另存为对话窗口,但是当我选择名称并保存文件时,无法找到新工作簿保持打开状态(Book1或无论什么汽车填充。

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

这是我现在非常基本的vba,我第一次尝试参考代码无效。谢谢你的帮助!!!

此外,我是社区的新手,因此不能100%确定如何粘贴完整的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

1 个答案:

答案 0 :(得分:4)

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

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