2015-05-26 41 views
1

我正在試圖將一個變量保留在VBA中當前打開的工作表中。到目前爲止,我有在VBA中聲明活動工作表變量

Dim Active As Worksheet 
Set Active = ActiveWorksheet 

出於某種原因,它在最後一行給我一個錯誤,說對象需要。我的代碼打開一個新的工作表,其中包含活動工作表中的數據,因此我需要一個變量來保存我在當前活動工作表中的位置。任何想法爲什麼這不能正常工作?提前致謝!

+2

一個好習慣是用Application來限定應用程序全局變量 - 如果你這樣做了,IntelliSense會告訴你你在找什麼。 –

回答

8

您需要使用ActiveSheet代替ActiveWorksheet

+0

哎呦。謝謝! – unikitty94

3

我不喜歡在VBA使用ActiveSheet因爲如果再往下你開始編寫使用多個工作表的代碼軌道試圖確定哪個是哪個時,它就會變得更加複雜。我更喜歡我用Activesheet以下

dim ws as Worksheet 

ws = Thisworkbook.Worksheets(1) 

OR 

ws = Thisworkbook.Worksheets("worksheet name") 

唯一的一次,現在是當我需要一些代碼,對任何工作表的工作,無論它包含什麼,這是非常罕見的。在這種情況下,上面已經使用說明:

dim ws as Worksheet 

ws = Thisworkbook.Activesheet 

OR 

ws = Activesheet 
0

對我來說,我喜歡直接對話我想用表(「工作表」),以ADRESS工作表。

所以,如果你想利用信息形成特定的表,你可以使用這個:

Dim ExampleWorksheet as Worksheet 
Dim Example as Integer 

Example = Sheets("ExampleWorksheet").Cells(x,y) 

所以你擺脫與活動或不活動工作表亂搞的。