Poenostavite poimenovanje obsega - Excel Nasveti

Jac vpraša:

Ustvarjam tabele, enako število stolpcev, vendar vsakič različno število vrstic. Brez težav lahko določim zadnjo vrstico in zadnji stolpec za izračune, ki jih potrebujem v makru. Zdaj je namen v ta makro dodati možnost poimenovanja tabele (vsakič z istim imenom), toda v makru je obseg celic, povezan z delovnim listom, R1C1: RxCy, ne vem, kako napisati obseg z uporabo vrednosti lastrow in lastcolumn (ki predstavljata zadnji stolpec in vrstico tabele) s sistemom RC (sploh ne vem, ali je to mogoče).

Večina programerjev VBA bi uporabila naslednjo metodo, ki uporablja metodo 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

Obstaja enostavnejša metoda za dodelitev imena obsega. Vsi naslednji štirje stavki so enakovredni. Zadnja dva sta bistveno lažja:

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"

Jac - Zadnjo vrstico bi prilagodil za uporabo:

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

To bližnjico za dodeljevanje imen obsegov sem se naučil iz priročnika Bovey & Bullen's Excel 2002 VBA Programmer's Reference. Različica te knjige iz leta 2002 kroži okoli različice iz leta 2000. Za moj denar kateri koli Excel VBA programer potrebuje to knjigo na desni strani. Moja kopija je pasje ušesa in nikoli nedosegljiva.

Zanimive Članki...