VBE中的工作表名称

时间:2015-03-25 10:56:41

标签: vba excel-vba vbe excel

我注意到我的工作簿有两个不同的名称,用于VBE中的每个组件。 name1和name2有什么区别? 我应该参考哪一个,所以我确定我的宏会起作用?

enter image description here

3 个答案:

答案 0 :(得分:5)

Control是工作表的代码名称,而Plan 1是工作表的选项卡名称。后者可以由用户轻松更改,因此如果可以的话,使用代号更安全 - 例如,参考:

control.range("A1:A10")

而不是:

sheets("Plan 1").Range("A1:A10")

请注意,除非您设置对该工作簿项目的引用,或使用a function that loops through each sheet in the other workbook testing the codename property of each,否则不能使用工作表代码来引用除包含代码的工作簿之外的工作表中的工作表。

答案 1 :(得分:2)

"计划1"是选项卡名称,它是工作表底部选项卡上显示的名称。

"控制与#34;是代码名称,可以在VBA中用于直接引用该特定工作表对象。

Sheets("Plan1").Cells(1, 1).ValueControl.Cells(1, 1).Value会产生相同的输出。

答案 2 :(得分:0)

VBE中的每个文档类型vbComponent都有一个Name和一个CodeName

  • Name是Excel用户界面中工作表标签上可见的名称。
  • CodeName是您的VBA中可以引用工作表对象的名称。

示例:

Sub Names()

  Debug.Print Control.Name              'Prints "Plan 1"
  Debug.Print Control.CodeName          'Prints "Control"

  'This approach uses the sheet name in a call to `Sheets`,
  ' which will break if a user changes the name of the sheet
  'The sheets collection returns an object, so you don't get
  ' Intellisense, or compile-time error checking
  Debug.Print Sheets("Plan 1").Name     'Prints "Plan 1"
  Debug.Print Sheets("Plan 1").CodeName 'Prints "Control"

End Sub