我有一個現有的工作簿將由多個用戶使用(誰將命名該工作簿唯一 - 我可以設置一個工作簿Codename if雖然需要,但不知道如何做到這一點?)。從現有(未知名稱)工作簿創建表單副本到一個新的(未知名稱)工作簿
我需要創建一個宏來打開一個新的工作簿(這可能是我不知道的名字,因爲它可能是'Book1','Book2','Book3'等),然後返回到存儲宏的原始工作簿,以及複製幾個(如果需要,可以一次做一個)工作表(我知道這些工作表的名稱)並將它們作爲新工作表粘貼到我創建的新工作簿中。宏不需要保存文件(實際上最好不要因爲我希望用戶將用戶最方便的位置保存在新的工作簿中)。
我試圖展示宏將做什麼,顯示明顯的問題,我不知道我創建/複製/粘貼到工作簿的名稱。
任何幫助,非常感謝!
Sub CopySheetintoNewWorkbook()
'Macro opens new/blank workbook (name unknown?)'
Workbooks.Add
'Macro goes back to original workbook where macro is saved (of which the name is unknown to the macro - i.e., users can and will change it)'
Windows("UnknownWorkbookName-1").Activate
'Macro goes to a sheet which can be named and will be known, so this is no problem'
Sheets("KnownSheet").Select
'Macro creates a copy of the sheet and pastes it as a new sheet within the new, unknown named workbook'
Application.CutCopyMode = False
Sheets("KnownSheet").Copy Before:=Workbooks("UnknownWorkbookName-2").Sheets(1)
End Sub
您可以使用thisworkbook.name來獲取正在運行宏的工作簿的名稱,並將其用於稍後參考。類似地,你可以在workbook.add – Slubee
之後強制分配一個名字。在'Workbooks.Add'之後,做一些類似於'Dim newWB as Workbook',然後'Set newWB = ThisWorkbook'。然後你可以使用'newWB.Sheets(「Sheet1」)。Range(「A1:A2」)。Value'或其他。 *或*,'Dim newWB as String','newWB = Thisworkbook.name',然後您將其稱爲'Workbooks(newWB).Sheets(「Sheet1」)...' – BruceWayne