Excel 如何将一个工作簿中的一个工作表复制到另一个工作簿中

Excel 如何将一个工作簿中的一个工作表复制到另一个工作簿中,excel,vba,Excel,Vba,我有两本单独的工作簿,一本名为ActiveWorkbook,另一本名为Terminated Workbook。我要做的是在ActiveWorkbook上创建一个复制按钮——Templatesheet,它将询问用户要复制哪张工作表,并将其复制到TerminatedWokbook中,并将其命名为与原始工作表相同的工作表 我有一些这样的代码,因为我对excel宏非常陌生,所以它当然不起作用。谢谢 Sub CopytoTernimal() Dim CopyName As String CopyName

我有两本单独的工作簿,一本名为ActiveWorkbook,另一本名为Terminated Workbook。我要做的是在ActiveWorkbook上创建一个复制按钮——Templatesheet,它将询问用户要复制哪张工作表,并将其复制到TerminatedWokbook中,并将其命名为与原始工作表相同的工作表

我有一些这样的代码,因为我对excel宏非常陌生,所以它当然不起作用。谢谢

Sub CopytoTernimal()
Dim CopyName As String
CopyName = InputBox("Please enter the name of sheet which will copy to ternimal")

Sheets("CopyName").Copy
Before:=Workbooks("Terminated Employees").Sheets(1)

End Sub

好的,这是完整的代码

Dim CopyName As String
CopyName = InputBox("Please enter the name of sheet which will copy to ternimal")

Dim thisSheet As Worksheet

'you must be sure CopyName is typed correctly, or it wont find the sheet
'also be sure the Activeworkbook name is correctly typed. 
Set thisSheet = Workbooks("ActiveWorkbook").Worksheets(CopyName) 

'copy this sheet
thisSheet.Rows.Copy

Dim NewSheet As Worksheet
Set NewSheet = Workbooks("Terminated Employees").Worksheets.Add()
NewSheet.Name = thisSheet.Name
NewSheet.Paste
要使其成为一个按钮,请转到excel主窗口的“开发人员”选项卡,然后插入一个
活动X按钮
。(使用活动工作簿) 然后在
设计模式下
,双击该按钮。将自动生成
单击事件
,因此您将此代码放在该子项中。 之后,禁用
设计模式(也在主窗口的“开发人员”选项卡中)。

单击该按钮时,将调用代码

由于CopyName是一个变量,而不是字符串,因此请使用不带引号的
Sheets(CopyName)
。然后将
放在
复制
命令的同一行中的
之前。谢谢,但是我在复制行上出现了错误“subscript out out range”(子脚本超出范围)。我相信问题出在
之前。请确保CopyName存在并尝试不使用它。我尝试使用name复制和不使用它,但收到相同的错误消息。很抱歉,因为工作表的名称应为has.xml。我会试试的。谢谢,但它不喜欢“NewSheet.Paste()”这句话。非常感谢。我仍然在设置thisSheet=Workbooks(“VacSicLog.xlsm”).工作表(CopyName)时出错。我是否需要提供包含.xlsm的工作表的全名,以及两个工作簿是否都需要打开。我很抱歉。I Excel的每一个新功能都是整个代码子CopytoTernimal()将CopyName设置为字符串CopyName=InputBox(“请输入将复制到ternimal的工作表的名称”)将此工作表设置为工作表Set thisSheet=Workbook(“VacSicLog.xlsm”)。工作表(CopyName)'复制此工作表thisSheet.Rows.copy Dim NewSheet作为工作表集NewSheet=工作簿(“Terminated Employees.xlsm”).Worksheets.Add()NewSheet.Name=thisSheet.Name NewSheet.Paste End Sub and line”“Set thisSheet=工作簿(“VacSicLog.xlsm”)。工作表(CopyName)”出现错误“运行时错误'9',下标超出范围。书本需要打开,是的。如果不是:
工作簿。打开(FullPathAfterminatedEmployeesBook)
。然后你可以继续。使用
工作簿(名称)
时,名称是标题,而不是完整路径。不要在名称中使用
xlsm
,只在完整路径中打开。