听起来您希望始终引用同一个工作表,而不考虑工作表的名称更改(如工作表的选项卡所示)。
这是工作表的位置
CODENAME
财产
很方便。
假设有一个对象变量为工作表声明,比如
Dim ws As Worksheet
. 可以通过三种基本方法引用工作表。
……
Name
:
设置对象变量:
Set ws = Sheets("Sheet1")
工作表名称是唯一可以更改为所需内容的工作表标识符,其操作(您可能知道)如下:
ws.Name = "NewSheetname"
…或者,比如:
Sheets("Sheet1").Name = "NewSheetName"
……
Index
编号:
索引编号标识
工作表“选项卡”的位置
,与其他工作表相比(如果不更改工作表的顺序,则无法更改)
设置对象变量:
Set ws = Sheets(1)
…然后您可以(仍然)更改工作表名称,如:
ws.name=“新闻纸名称”
…或者您可以通过引用工作表索引号来更改名称,例如:
Sheets(1).Name = "NewSheetName"
注:
如果工作表被移动(或在其前面插入另一个工作表),
索引编号将更改!
因此,它通常不是引用工作表的首选方法。
……
CodeName
:
代码名是Excel内部引用工作表的方式。它是Excel为工作表指定的原始名称,由于它是只读属性,因此不会更改。
设置对象变量:
Set ws = Sheet1
…然后您可以(仍然)更改工作表名称,如:
ws.name=“新闻纸名称”
…或者您可以通过引用工作表代码名来更改名称,例如:
Sheet1.Name = "NewSheetName"
您可以检查工作表
代号
属性如下:
MsgBox Sheets("YourSheetName").CodeName
…或者,如果
ws
已在引用工作表:
MsgBox ws.CodeName
因此,在您的情况下,您可以根据自己的喜好,随时更改工作表的名称,方法是:
Sheet2.Name = "NewNameHere"
…只是一直把它称为
Sheet2
.
再举一个例子
要澄清差异:
-
创建新工作簿。(工作表将自动命名为
Sheet1
)
-
将工作表名称更改为“Sheet1999”,可以手动(双击其选项卡上的名称)或通过编程(使用
Sheet1.Name="Sheet1999"
)
-
现在,如果要找出该工作表上使用了多少行,可以使用以下任一行:
MsgBox Sheets("Sheet1999").UsedRange.Rows.Count
…或:
MsgBox Sheet1.UsedRange.Rows.Count
关于
Sheets
对战
Worksheets
:
引用工作表时
希茨
和
工作表
可以
通常
可以互换使用,例如这两行用于
同样的事情
:
Worksheets("mySheet").Calculate
Sheets("mySheet").Calculate
区别
是不是:
-
这个
工作表
对象搜索
这个
工作表
收藏
为了匹配
名字
,
索引
或
代号
.
-
这个
希茨
对象搜索
这个
工作表
收集**和
这个
Charts
集合**用于匹配
名字
,
索引
或
代号
.
因此,唯一的问题是
同名的图表和工作表
.
所以,
不要将图表命名为与工作表相同的图表
然后你就不用担心了,只要你提到一个
Sheet
…:)
更多信息: