Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在变量中声明活动工作表?_Excel_Vba_Worksheet - Fatal编程技术网

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

Excel 如何在变量中声明活动工作表?,excel,vba,worksheet,Excel,Vba,Worksheet,我试图在VBA中为当前打开的工作表保留一个变量。到目前为止我有 Dim Active As Worksheet Set Active = ActiveWorksheet 出于某种原因,它在最后一行给了我一个错误,说objectrequired。我的代码打开一个新的工作表,其中包含活动工作表中的数据,因此我需要一个变量来保存我在当前活动工作表中的位置。你知道为什么不能正常工作吗?你需要使用ActiveSheet而不是ActiveSheet我不喜欢在VBA中使用ActiveSheet,因为如

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

 Dim Active As Worksheet
 Set Active = ActiveWorksheet 

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

你需要使用
ActiveSheet
而不是
ActiveSheet
我不喜欢在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)

因此,您可以摆脱对活动或非活动工作表的干扰。

一个好习惯是使用
应用程序对应用程序全局进行限定。
-如果您这样做,IntelliSense会告诉您您正在寻找什么。