Я заметил, что моя книга имеет два разных имени для каждого компонента в VBE. В чем разница между name1 и name2? Кого я должен называть, поэтому я буду уверен, что мой макрос будет работать?Имена рабочих листов в VBE
ответ
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» - это имя вкладки, которое отображается на вкладке внизу рабочего листа.
«Управление» - это кодовое имя, которое может использоваться в VBA для непосредственного ссылки на этот конкретный объект.
Sheets("Plan1").Cells(1, 1).Value
и Control.Cells(1, 1).Value
будут выдавать одинаковый выход.
Каждый документ типа vbComponent в VBE имеет Name
и CodeName
:
Name
это имя, которое отображается на вкладке листа в Excel UI.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
возможно дубликат [Excel имен вкладки листов и базовые имена визуальных листов] (http://stackoverflow.com/questions/2649844/excel-tab-sheet-names- vs-visual-basic-sheet-names) –
Связано также: http://stackoverflow.com/questions/27169070/identifying-a-worksheet-other-than-by-its-name и еще несколько: http://stackoverflow.com/search?q=sheet+name+codename –