Jac sa pýta:
Generujem tabuľky, rovnaký počet stĺpcov, ale zakaždým iný počet riadkov. Bez problémov môžem určiť posledný riadok a posledný stĺpec na vykonanie výpočtov, ktoré potrebujem, v makre. Teraz je účelom pridať do tohto makra možnosť pomenovať tabuľku (zakaždým rovnakým menom), ale v makre je rozsah buniek spojených s pracovným hárkom R1C1: RxCy, neviem, ako napísať rozsah pomocou hodnôt lastrow a lastcolumn (ktoré predstavujú posledný stĺpec a riadok tabuľky) so systémom RC (ani neviem, či je to možné).
Väčšina programátorov VBA by použila nasledujúcu metódu, ktorá používa metódu 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
Existuje ľahší spôsob priradenia názvu rozsahu. Nasledujúce štyri tvrdenia sú rovnocenné. Posledné dva sú omnoho jednoduchšie:
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 - posledný riadok by som upravil na použitie:
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
Túto skratku na priraďovanie mien rozsahu som sa naučil z príručky programátora VBA pre program Excel 2002 VBA od spoločnosti Bovey & Bullen. Verzia tejto knihy z roku 2002 krúži okolo verzie z roku 2000. Za svoje peniaze potrebuje ktorýkoľvek programátor Excel VBA túto knihu po svojej pravej ruke. Moja kópia je ušatá a nikdy mimo dosahu.