Vereenvoudig het benoemen van een bereik - Excel-tips

Jac vraagt:

Ik genereer tabellen, hetzelfde aantal kolommen maar telkens een ander aantal rijen. Ik kan zonder problemen de laatste rij en de laatste kolom bepalen om de berekeningen te maken die ik nodig heb in een macro. Het doel is nu om in deze macro de mogelijkheid toe te voegen om de tabel een naam te geven (elke keer met dezelfde naam), maar in de macro is het celbereik dat aan het werkblad is gekoppeld R1C1: RxCy, ik weet niet hoe ik het bereik moet schrijven met behulp van de waarden lastrow en lastcolumn (die de laatste kolom en rij van de tabel vertegenwoordigen) met het RC-systeem (ik weet niet eens of het mogelijk is).

De meeste VBA-programmeurs zouden de volgende methode gebruiken, die de Names.Add-methode gebruikt.

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

Er is een eenvoudigere methode om een ​​bereiknaam toe te wijzen. De volgende vier uitspraken zijn allemaal gelijkwaardig. De laatste twee zijn veel eenvoudiger:

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 - Ik zou de laatste regel aanpassen voor gebruik:

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

Ik heb deze sneltoets voor het toewijzen van bereiknamen geleerd uit de Excel 2002 VBA Programmer's Reference van Bovey & Bullen. De 2002-versie van dit boek draait cirkels rond de 2000-versie. Voor mijn geld heeft elke Excel VBA-programmeur dat boek aan zijn rechterhand nodig. Mijn exemplaar is ezelsoren en nooit buiten bereik.

Interessante artikelen...