在VBA中声明活动工作表变量

时间:2015-05-26 18:31:41

标签: excel vba excel-vba worksheet

我正在尝试将变量保存到VBA中当前打开的工作表中。到目前为止我已经

 Dim Active As Worksheet
 Set Active = ActiveWorksheet 

由于某种原因,它在最后一行给出了一个错误,说需要Object。我的代码打开一个新工作表,其中包含活动工作表中的数据,因此我需要一个变量来保存当前活动工作表中的位置。知道为什么这不能正常工作吗?提前谢谢!

3 个答案:

答案 0 :(得分:11)

您需要使用ActiveSheet代替ActiveWorksheet

答案 1 :(得分:4)

我不想在VBA中使用ActiveSheet,因为如果在轨道的后面开始编写使用多个工作表的代码,在尝试确定哪个是哪个时,它会变得混乱。我更喜欢以下

dim ws as Worksheet

ws = Thisworkbook.Worksheets(1)

OR

ws = Thisworkbook.Worksheets("worksheet name")

我现在唯一一次使用Activesheet是因为我需要一些代码来处理任何工作表而不管它包含什么,这是非常罕见的。在这种情况下,如上所述使用:

dim ws as Worksheet

ws = Thisworkbook.Activesheet

OR

ws = Activesheet

答案 2 :(得分:0)

对我来说,我喜欢直接使用工作表(“工作表”)直接与工作表交谈。

因此,如果您想从特定工作表中获取信息,可以使用:

Dim ExampleWorksheet as Worksheet
Dim Example as Integer

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

因此,您可以摆脱使用活动或非活动工作表的麻烦。