Как присвоить имя столбцу автоматически?
Модератор: Naeel Maqsudov
Привет, всем! Посоветуйте, как сделать так, чтобы каждому столбцу таблицы автоматически присваивалось имя по его наименованию в шапке таблицы. Пользоваться справкой по VBA так и не научилась. Интересно, она всегда на английском...?... Всем спасибо.
1. Выделите весь диапазон ячеек, включая "наименование в шапке таблицы" (если заголовок находится в самой первой ячейке, то возможно выделить сразу все столбцы) Затем в меню Вставка выбираете пункт Имя, затем команду Создать. В появившемся стандартном диалоговом окне Создать имена установите флажок напротив в строке выше и нажмите кнопку OK.
Примечание :
- При применении этого способа Вы не получите имя для целого столбца(ов), а только для выделенного диапазона минус заголовок.
- В MS Excel есть очень удобная возможность - использовать заголовки таблиц в качестве имён, при этом Вам не нужно будет присваивать ячейкам имена ни в ручную, ни программно.
2. В MS Excel 97 большая часть справки была переведена на русский. В остальных версиях справка по VBA вся на английском.
Примечание :
- При применении этого способа Вы не получите имя для целого столбца(ов), а только для выделенного диапазона минус заголовок.
- В MS Excel есть очень удобная возможность - использовать заголовки таблиц в качестве имён, при этом Вам не нужно будет присваивать ячейкам имена ни в ручную, ни программно.
2. В MS Excel 97 большая часть справки была переведена на русский. В остальных версиях справка по VBA вся на английском.
Замечательная функция! Спасибо!
Решила всё-таки поупражняться с написанием макросов дальше. Но у меня постоянно возникают какие-то ошибки. Сейчас не могу понять, что пропустила в этом случае.
Dim r As Range
Set r = ActiveCell.CurrentRegion
r.Select
Selection.CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False
Решила всё-таки поупражняться с написанием макросов дальше. Но у меня постоянно возникают какие-то ошибки. Сейчас не могу понять, что пропустила в этом случае.
Dim r As Range
Set r = ActiveCell.CurrentRegion
r.Select
Selection.CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False
Возможно на момент выполнения макроса ActiveCell не является частью заполненного диапазона, правда в этом случае Вы должны получить сообщение об ошибке (если не используете On Error …)
P.S. Рекомендую обратить внимание на вторую часть моего примечания из прошлого message, так как эта возможность может серьёзно облегчить Вам работу с электронными таблицами. Если будут нужны ссылки на реальные примеры, то можете написать в приват.
Код: Выделить всё
ActiveSheet.UsedRange.Item(1).CurrentRegion.CreateNames Top:=True
ActiveSheet.UsedRange.Cells(1).CurrentRegion.CreateNames Top:=True
Я понимаю, что в чужой монастырь со своим уставом не ходят, но всё же … если Ваша таблица с данными построена таким образом, что не имеет пустых столбцов, то в этом случае можно использовать сокращённый вариант, а именно :
Код: Выделить всё
ActiveSheet.UsedRange.CreateNames Top:=True