Jac spør:
Jeg genererer tabeller, samme antall kolonner, men hver gang forskjellige antall rader. Jeg kan uten problemer bestemme den siste raden og den siste kolonnen for å gjøre beregningene jeg trenger i en makro. Nå er formålet å legge til i denne makroen muligheten til å navngi tabellen (med samme navn hver gang), men i makroen er cellene som er tilknyttet regnearket R1C1: RxCy, jeg vet ikke hvordan jeg skal skrive området ved å bruke verdiene lastrow og lastcolumn (som representerer den siste kolonnen og raden i tabellen) med RC-systemet (jeg vet ikke engang om det er mulig).
De fleste VBA-programmerere vil bruke følgende metode, som bruker Names.Add-metoden.
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
Det er en enklere metode for å tilordne et rekkevidde. De følgende fire uttalelsene er alle likeverdige. De to siste er langt enklere:
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 - Jeg ville tilpasse den siste linjen for bruk:
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
Jeg lærte denne snarveien for tildeling av rekkevidde fra Bovey & Bullen's Excel 2002 VBA Programmer's Reference. 2002-versjonen av denne boka kjører sirkler rundt 2000-versjonen. For mine penger trenger en hvilken som helst Excel VBA-programmerer den boken på høyre hånd. Kopien min er hundeare og aldri utenfor rekkevidde.