EXCEL 2007 – 需要帮助创build一个button,它将活动工作表的内容粘贴到一个新的工作表中

我在这个网站searchfind我的问题的答案和大多数相关的解决scheme是一个更复杂的问题。 这是我需要做的。 我在Excel 2007中创build了一个简单的表单。我正在寻找在表单底部添加一个button的function,允许用户单击该button并将该工作表复制到同一个Excel文档中的新工作表中。 基本上只是复制活动工作表。

我试图用macros来做,但没有得到所需的结果,我们大多数的同事仍然使用Excel 2003,所以我不确定macros是否可以在老版本的Excel中工作。 我不知道任何VBA,这就是为什么我来这里寻求所有你的帮助。

所以回顾一下。

  1. 一张表单文件,一个简单的表单和一个命令button在活动工作表的底部
  2. 将该工作表的命令button“复制并粘贴”到同一个Excel文档中的新工作表中
  3. 如果可能的话,这个解决scheme可以在Excel 2003和2007中使用。 如果不是,则为2007年。

任何愿意帮助新手Excel用户的人都会提前感谢您。

假设你知道如何在这里添加一个button是一个简单的代码行复制活动工作表:

Sub Button1_Click() ActiveSheet.Copy after:=ActiveSheet End Sub 

也许像这样(仅在Excel 2003中testing):

 Dim srcSheet, dstSheet Set srcSheet = ActiveSheet Sheets.Add Set dstSheet = ActiveSheet srcSheet.Activate srcSheet.Cells.Select Selection.Copy dstSheet.Activate dstSheet.Cells.Select ActiveSheet.Paste 

你应该发现这个方法可以在Excel 2003和Excel 2007中工作。在你的表单中,添加下面的方法:

 Sub CopySheet(WorkSheetName as String) Dim WrkSht As Worksheet Set WrkSht = Sheets(WorkSheetName) WrkSht.Copy After:=Sheets(WorkSheetName) Set WrkSht = Nothing End Sub 

从button单击事件中,使用以下命令调用它:

 Sub Button1_Click() Call CopySheet("WorkSheetToCopyName") 'You could also replace the string name with ActiveSheet if you so wish End Sub 

这将在当前表单和下一个表单之间转储工作表的副本。 我已经在Excel 2003和Excel 2007中对它进行了testing,并且在两个版本中都可以使用。 它并没有给第二个人留下一个漂亮的名字 – 它只是和(2)放在源代码表中一样。

所有格式化,保护和公式都被复制 – 这是第一个的复制。

我知道这个问题是相当古老的,但只是想注意到你(和用户)可以做零代码完全相同的事情:右键单击底部的工作表名称,然后select移动或复制… ,然后选中创build复制框并点击确定 。 是的,它需要4次点击,但它是超级简单,避免代码。