Jac frågar:
Jag genererar tabeller, samma antal kolumner men varje gång olika antal rader. Jag kan utan problem bestämma den sista raden och den sista kolumnen för att göra de beräkningar jag behöver i ett makro. Nu är syftet att lägga till i detta makro möjligheten att namnge tabellen (med samma namn varje gång), men i makrot är cellerna som är associerade med kalkylbladet R1C1: RxCy, jag vet inte hur man skriver intervallet med värdena lastrow och lastcolumn (som representerar den sista kolumnen och raden i tabellen) med RC-systemet (jag vet inte ens om det är möjligt).
De flesta VBA-programmerare använder följande metod, som använder metoden 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
Det finns en enklare metod för att tilldela ett intervallnamn. Följande fyra påståenden är alla likvärdiga. De två sista är mycket lättare:
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 - Jag skulle anpassa den sista raden för användning:
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
Jag lärde mig denna genväg för att tilldela intervallnamn från Bovey & Bullens Excel 2002 VBA Programmer's Reference. 2002-versionen av denna bok går runt 2000-versionen. För mina pengar behöver någon Excel VBA-programmerare den boken till höger. Mitt exemplar är hundörat och aldrig utom räckhåll.