我正在尝试创建一个新的工作簿以将工作表保存到。我创建新的工作簿,提示输入名称。所有这些都有效,然后我的问题是我需要使用该新名称创建一个变量,因此在将工作表复制到该变量时,我可以更轻松地来回跳转。
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)
我被卡住了。也许有比我在这里尝试做的更好的方法。任何想法都会有所帮助。
编辑:@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