繁体   English   中英

工作表的变量名

[英]Variable name of a worksheet

我想在excel中将工作表命名为名为“控件”的选项卡中单元格“ C6”内的值。 我是VBA的新手,我尝试在模块上键入此内容。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'
' Macro2 Macro
'

'
    Dim month As String
    month = Sheet2.Range("C5")
    Sheets("Month").Name = month
End Sub

而且,我不知道该名称是否会自动更新。 我不想运行宏来更改工作表名称。

谢谢!

听起来好像您希望能够始终引用相同的工作表,而不管工作表的名称如何更改(如工作表的选项卡所示)。

这是工作表的CODENAME属性派上用场的地方。

假设您有一个为工作表声明的对象变量,例如Dim ws As Worksheet 您可以通过三种基本方法来引用工作表。


...按Name

设置对象变量:

 Set ws = Sheets("Sheet1") 

工作表名称是唯一可以更改为所需名称的工作表标识符,(您可能已经知道)可以完成以下操作:

 ws.Name = "NewSheetname" 

...或者,例如:

 Sheets("Sheet1").Name = "NewSheetName" 

...按Index号:

与其他索引相比,索引号标识工作表的“选项卡”的位置 (如果不更改工作表的顺序就无法更改)

设置对象变量:

 Set ws = Sheets(1) 

...然后您可以(仍然)更改工作表名称,例如:

 ws.Name = "NewSheetname" 

...或者您可以通过引用工作表索引号来更改名称,例如:

 Sheets(1).Name = "NewSheetName" 

注意:如果移动了工作表(或在其之前插入了另一个工作表), 索引号将发生变化! 因此,通常不是引用工作表的首选方法。


...通过CodeName

CodeName是Excel在内部引用工作表的方式。 这是Excel赋予工作表的原始名称,并且由于它是只读属性而不会更改。

设置对象变量:

 Set ws = Sheet1 

...然后您可以(仍然)更改工作表名称,例如:

 ws.Name = "NewSheetname" 

...或者您可以通过引用工作表代号来更改名称,例如:

 Sheet1.Name = "NewSheetName" 

您可以像下面那样检查工作表的CodeName属性:

 MsgBox Sheets("YourSheetName").CodeName 

...或者,如果ws已经在引用工作表:

 MsgBox ws.CodeName 

因此,根据您的情况,您可以使用以下命令随时更改工作表的名称:

Sheet2.Name = "NewNameHere"

...只要继续将其称为Sheet2


还有一个例子来阐明区别:

  • 创建一个新的工作簿。 (它将自动具有名为Sheet1工作表。)
  • 手动(通过双击选项卡上的名称)或以编程方式(使用Sheet1.Name="Sheet1999" )将工作表名称更改为“ Sheet1999”。

  • 现在,如果要查找已使用了该工作表上的多少行,请使用use:

     MsgBox Sheets("Sheet1999").UsedRange.Rows.Count 

    ...要么:

     MsgBox Sheet1.UsedRange.Rows.Count 

关于Worksheets SheetsWorksheets注释:

当引用工作SheetsSheetsWorksheets 通常可以互换使用,因此例如,这两行做相同的事情

Worksheets("mySheet").Calculate

Sheets("mySheet").Calculate

区别在于:

  • Worksheets对象Worksheets集合中搜索匹配的NameIndexCodeName

  • Sheets对象会Worksheets Collection **和 Charts Collection **中搜索匹配的NameIndexCodeName

因此,唯一的问题就是您的图表和工作表的名称相同

因此, 永远不要将图表命名为与工作表相同的名称 ,这样您就不必担心它了,只要您引用工作Sheet ...,就可以继续保存4次击键... :)


更多信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM