如何在变量中声明活动工作表?

问题描述 投票:4回答:3

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

 Dim Active As Worksheet
 Set Active = ActiveWorksheet 

由于某种原因,它在最后一行给了我一个错误,说要求对象。我的代码使用活动工作表中的数据打开一个新的工作表,因此我需要一个变量来保留我在当前活动工作表中的位置。知道为什么它不能正常工作吗?

excel vba worksheet
3个回答
11
投票

您需要使用ActiveSheet而不是ActiveWorksheet


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

0
投票

对我来说,我想直接使用Sheet(“ Worksheet”)与要处理的工作表进行对话。

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

Dim ExampleWorksheet as Worksheet
Dim Example as Integer

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

因此您摆脱了工作表或活动表的混乱。

© www.soinside.com 2019 - 2024. All rights reserved.