2012-07-09 32 views
1

在我的代码中,我复制两行单元格并粘贴另一个表单(以及其他正常工作的东西,因此无需在此处引用它)。我的问题是,我希望宏对我选择用于运行宏的每个工作表执行此操作,而不是最初用于记录宏的工作表。在VBA中保留ActiveSheet

Sheets("Gr 3 Lang").Select 
ActiveCell.Rows("1:2").EntireRow.Select 
Selection.Copy 
Sheets("Gr 3 Math").Select 
ActiveSheet.Paste 

从本质上说,我不希望它说的“GR 3加减乘除”如果我打算在“的Gr 4加减乘除”等运行宏。

我尝试使用ActiveSheet,而不是在那一点“Gr 3 Lang”是ActiveSheet。

不知道该怎么做。

特伦顿

+0

如果你使用'ActiveSheet'然后代码将运行在任何表处于活动状态。因此,要在“Gr 4 Math”上运行它,您必须手动选择工作表使其成为活动工作表,然后使用代码。 – 2012-07-09 16:37:55

+0

因此,如果您在'Gr X Lang'中运行它,您希望将行粘贴到'Gr X Math'中? – 2012-07-09 16:38:34

+0

@ Rob I - 如果我在“Gr X Lang”中运行它,我不希望它发布在“Gr X Lang”中。我有3-8年级的Lang和Math的表。第一张“Gr 3 Lang”有我想要粘贴到其他所有纸张上的行。所以,从Gr 3 Lang到Gr 3 Math到Gr 4 Lang等等。显然,我可以在每个表格中运行它之前编辑代码,但我想知道如何去做以备将来参考。 – user1486326 2012-07-09 17:33:57

回答

0
Sheets(1).Rows("1:2").EntireRow.Copy 
ActiveSheet.Paste 

与任何你想要更换1次。您可以按名称或索引使用表格(“Gr 3 Math”)。

+0

这并不能解决我想要做的事情。我基本上希望工作表是一个变量。这意味着它将粘贴到我称之为宏的任何表单中。如果我使用你的代码,那么如果我从“Gr 4 Lang”中调用它,它会将它粘贴到“Gr 3 Math”而不是“Gr 4 Lang”中。 – user1486326 2012-07-09 19:01:30

+0

我已更新为现在描述它们的状态 – enderland 2012-07-09 21:53:52

1

这应该这样做...

Sheets("Gr 3 Lang").Rows("1:2").Copy ActiveSheet.Range("A1")