我有一个现有的工作簿将由多个用户使用(谁将命名该工作簿唯一 - 我可以设置一个工作簿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