EXCEL 2007 - 需要帮助创建一个按钮,它将活动工作表的内容粘贴到一张新工作表中

问题描述:

我在整个网站上搜索以找到我的问题的答案,大多数相关解决方案都是为了更加复杂问题。这是我需要做的。我在Excel 2007中创建了一个简单的表单。我正在寻找在表单底部添加按钮的功能,允许用户单击该按钮并将该工作表复制到同一个Excel文档中的新工作表中。基本上只是复制活动工作表。EXCEL 2007 - 需要帮助创建一个按钮,它将活动工作表的内容粘贴到一张新工作表中

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

所以回顾一下。

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

非常感谢那些愿意帮助新手Excel用户的人。

假设你知道如何添加此按钮是一个简单的代码行复制活动工作表:

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

安德鲁我的男人!辉煌!!这是完美的,它保留了所有的格式和工作表保护!非常感谢! – Stat1124 2009-11-16 22:49:03

+0

不错的欣赏,如果只有每个人都如此欣赏。 – 2010-05-21 04:12:49

也许这样的事情(在Excel 2003中仅测试):

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 
+0

好,我只是尝试这样使用Excel 2007中,并得到了以下错误:运行时错误“9”:下标越界。 – Stat1124 2009-11-16 21:57:52

+0

我用了另一个名字。这里是代码:Private Sub CommandButton1_Click() 表(“MultipleChoice”)。选择 Selection.Copy Sheets.Add 表(“NewSheet”)。选择 ActiveSheet.Paste End Sub – Stat1124 2009-11-16 21:58:27

+0

所以我现在的问题是,“”中的名称应该是我选择的任何名称还是必须从正在复制的源工作表中指定的名称! – Stat1124 2009-11-16 21:59:40

你应该找到这个方法将在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 

从按钮单击事件,调用它使用:

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中对它进行了测试,并且它在两个版本中均可用。它并没有给第二个人留下一个漂亮的名字 - 它只是和源代码工作表(2)放在它之后一样。

所有格式,保护和公式跨太复制 - 这是第一次的翻版。

+0

Ben,我会试一试,然后将它发送给Excel 2003用户,以确保他们可以查看它以及Andrew的建议。我感谢您花时间帮助我! – Stat1124 2009-11-17 14:02:43

我知道这个问题已经过时了,但只是想说明你(和用户)可以用零代码完成同样的事情:右键单击底部的表名并选择移动或复制...,然后检查创建一个副本复选框,然后单击确定。是的,它需要4次点击,但它非常简单并且避免了代码。