Forenkle navngivning af et interval - Excel-tip

Jac spørger:

Jeg genererer tabeller, samme antal kolonner, men hver gang forskelligt antal rækker. Jeg kan uden problemer bestemme den sidste række og den sidste kolonne for at foretage de beregninger, jeg har brug for, i en makro. Nu er formålet at tilføje i denne makro muligheden for at navngive tabellen (med samme navn hver gang), men i makroen er cellerne tilknyttet regnearket R1C1: RxCy, jeg ved ikke hvordan man skriver området ved hjælp af værdierne lastrow og lastcolumn (som repræsenterer den sidste kolonne og række i tabellen) med RC-systemet (jeg ved ikke engang, om det er muligt).

De fleste VBA-programmører bruger følgende metode, der bruger 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

Der er en lettere metode til at tildele et rækkeviddenavn. De følgende fire udsagn er alle ækvivalente. De sidste to er meget lettere:

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 sidste linje til brug:

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 genvej til tildeling af rækkevidde fra Bovey & Bullen's Excel 2002 VBA Programmer's Reference. 2002-versionen af ​​denne bog kører cirkler omkring 2000-versionen. For mine penge har enhver Excel VBA-programmør brug for den bog ved sin højre hånd. Min kopi er hundeørede og aldrig uden for rækkevidde.

Interessante artikler...