Поједноставите именовање распона - Екцел савети

Јац пита:

Генеришем табеле, исти број колона, али сваки пут различит број редова. Могу без проблема да одредим последњи ред и последњу колону да извршим прорачуне који су ми потребни у макронаредби. Сада је сврха додати овом макроу могућност именовања табеле (сваки пут са истим именом), али у макроу опсег ћелија придружен радном листу је Р1Ц1: РкЦи, не знам како да напишем опсег користећи вредности ластров и ластцолумн (које представљају последњу колону и ред табеле) са РЦ системом (чак ни не знам да ли је то могуће).

Већина програмера ВБА користила би следећу методу која користи методу Намес.Адд.

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

Ову пречицу за додељивање имена опсега научио сам из Бовеи & Буллен'с Екцел 2002 ВБА Программер Референце. Верзија ове књиге из 2002. покреће кругове око верзије из 2000. године. За мој новац, сваком Екцел ВБА програмеру је потребна та књига с десне стране. Моја копија је пасје ушица и никад недоступна.

Занимљиви Чланци...