创建新工作簿,然后使用该WB名称作为变量

问题描述 投票:0回答:1

我正在尝试创建一个新的工作簿以将工作表保存到。我创建新的工作簿,提示输入名称。所有这些都有效,然后我的问题是我需要使用该新名称创建一个变量,因此在将工作表复制到该变量时,我可以更轻松地来回跳转。

Sub SaveInfo()
'
' SaveInfo Macro
'
Dim NWB As Workbook
Dim TWB As Workbook
Dim Fname As String

Dim MyTargetFile As Variant
Dim UserInput As Variant
Dim WBName As String

Workbooks.Add 
MyOpenedFile = ActiveWorkbook.Name

'Here get a file name from user
UserInput = Application.InputBox(prompt:="Enter File name to save")

If UserInput <> "" Then
'Save the opened excel file by renaming it , here UserInput is used  as new file name.
Workbooks(MyOpenedFile).SaveAs Filename:="G:\Clearwater\Archive Data\" & UserInput
End If
'Here I try to get that name of the new workbook
    WBName = ThisWorkbook.Name
    'Here I try to declare that workbook as a variable
    Set NWB = Workbooks("WBName")

    Set TWB = Workbooks("Historical Data Creation Tool ERIK New.xlsm")

在这里我将一遍又一遍地称为“新工作簿” NWB

TWB.Activate
Sheets("CW_AmortEarn").Select
Sheets("CW_AmortEarn").Copy Before:=NWB.Sheets(1)

TWB.Activate
Sheets("CW_FMV_FY").Select
Sheets("CW_FMV_FY").Copy Before:=NWB.Sheets(1)

我被卡住了。也许有比我在这里尝试做的更好的方法。任何想法都会有所帮助。

excel vba
1个回答
1
投票

编辑:@BigBen已经在评论中指出了这一点...

[Workbooks.Add返回对添加的工作簿的引用,因此请捕获并使用它:

Dim wb As Workbook, UserInput 

Set wb = Workbooks.Add()

UserInput = Application.InputBox(prompt:="Enter File name to save")

If UserInput <> "" Then
    wb.SaveAs Filename:="G:\Clearwater\Archive Data\" & UserInput
End If

'wb is still a reference to the newly-added workbook
Debug.Print wb.Name
© www.soinside.com 2019 - 2024. All rights reserved.