在VBA中声明活动工作表variables

我试图保留一个variables到VBA中当前打开的工作表。 到目前为止,我有

Dim Active As Worksheet Set Active = ActiveWorksheet 

由于某种原因,它在最后一行给我一个错误,说对象需要。 我的代码打开一个新的工作表与活动工作表中的数据,所以我需要一个variables来保持我在当前活动工作表中的地方。 任何想法,为什么这是不正确的工作? 提前致谢!

您需要使用ActiveSheet而不是ActiveWorksheet

我宁愿不要在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 

对于我而言,我喜欢直接与我要使用工作表(“工作表”)工作表交谈。

所以,如果你想从一个特定的表格中获取信息,你可以使用这个:

 Dim ExampleWorksheet as Worksheet Dim Example as Integer Example = Sheets("ExampleWorksheet").Cells(x,y) 

所以你摆脱了与活跃或不活跃的工作表混乱。