Jac chiede:
Sto generando tabelle, lo stesso numero di colonne ma ogni volta un numero diverso di righe. Posso determinare senza problemi l'ultima riga e l'ultima colonna per fare i calcoli di cui ho bisogno in una macro. Ora lo scopo è aggiungere in questa macro la possibilità di nominare la tabella (con lo stesso nome ogni volta), ma nella macro l'intervallo di celle associato al foglio di lavoro è R1C1: RxCy, non so come scrivere l'intervallo utilizzando i valori lastrow e lastcolumn (che rappresentano l'ultima colonna e riga della tabella) con il sistema RC (non so nemmeno se sia possibile).
La maggior parte dei programmatori VBA utilizza il metodo seguente, che utilizza il metodo 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
C'è un metodo più semplice per assegnare un nome di intervallo. Le seguenti quattro affermazioni sono tutte equivalenti. Gli ultimi due sono molto più facili:
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 - Adatterei l'ultima riga per l'uso:
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
Ho imparato questa scorciatoia per l'assegnazione dei nomi degli intervalli da Bovey & Bullen's Excel 2002 VBA Programmer's Reference. La versione del 2002 di questo libro gira intorno alla versione del 2000. Per i miei soldi, qualsiasi programmatore VBA di Excel ha bisogno di quel libro alla sua destra. La mia copia ha le orecchie di cane e non è mai fuori portata.