2012-07-09 67 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")