Упростите присвоение имен диапазону - Советы по Excel

Жак спрашивает:

Я создаю таблицы с одинаковым количеством столбцов, но каждый раз с разным количеством строк. Я могу без проблем определить последнюю строку и последний столбец для выполнения необходимых мне вычислений в макросе. Теперь цель состоит в том, чтобы добавить в этот макрос возможность называть таблицу (каждый раз с тем же именем), но в макросе диапазон ячеек, связанный с рабочим листом, - R1C1: RxCy, я не знаю, как записать диапазон используя значения lastrow и lastcolumn (которые представляют последний столбец и строку таблицы) с системой RC (я даже не знаю, возможно ли это).

Большинство программистов VBA использовали бы следующий метод, в котором используется метод Names.Add.

Sub Method1() LastRow = Cells(65536, 1).end(xlUp).row LastCol = Cells(1, 255).End(xlToLeft).column MyArea = "='" & ActiveSheet.Name & "'!R1C1:R" & LastRow & "C" & LastCol ActiveWorkbook.Names.Add Name:="TheData", RefersToR1C1:=MyArea End Sub

Существует более простой способ присвоения имени диапазона. Следующие четыре утверждения эквивалентны. Последние два намного проще:

ActiveWorkbook.Names.Add Name:="TheData", RefersToR1C1:="=Sheet1!R1C1:R10C5" ActiveWorkbook.Names.Add Name:="TheData", RefersTo:="=Sheet1!A1:E10" Range("A1:E10").Name = "TheData" Cells(1, 1).Resize(10, 5).Name = "TheData"

Жак - Я бы адаптировал последнюю строчку для использования:

Sub Method2() LastRow = Cells(65536, 1).end(xlUp).row LastCol = Cells(1, 255).End(xlToLeft).column Cells(1, 1).Resize(LastRow, LastCol).Name = "TheData" End Sub

Я изучил этот ярлык для присвоения имен диапазонов из Справочника программиста VBA Excel 2002 от Bovey & Bullen. Версия этой книги 2002 года повторяет версию 2000 года. На мои деньги, любому программисту Excel VBA эта книга нужна под рукой. Моя копия потрепана и всегда недоступна.

Интересные статьи...