Jac küsib:
Ma genereerin tabeleid, sama arv veerge, kuid iga kord erinev arv ridu. Ma saan probleemideta kindlaks teha viimase rea ja viimase veeru makros vajalike arvutuste tegemiseks. Nüüd on selle makro eesmärk lisada tabelile nimi (iga kord sama nimega), kuid makros on töölehega seotud lahtrivahemik R1C1: RxCy, ma ei tea, kuidas vahemikku kirjutada kasutades RC-süsteemiga väärtusi lastrow ja lastcolumn (mis tähistavad tabeli viimast veergu ja rida) (ma isegi ei tea, kas see on võimalik).
Enamik VBA programmeerijaid kasutaks järgmist meetodit, mis kasutab meetodit 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
Vahemiku nime määramiseks on lihtsam meetod. Järgmised neli väidet on kõik samaväärsed. Kaks viimast on oluliselt lihtsamad:
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 - ma kohandaksin viimase rea kasutamiseks:
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
Selle vahemike nimede määramise otsetee õppisin Bovey & Bulleni Excel 2002 VBA programmeerija juhendist. Selle raamatu 2002. aasta versioon ringleb 2000. aasta versiooni ümber. Minu raha eest vajab iga Exceli VBA programmeerija seda raamatut paremal käel. Minu koopia on koerakõrvane ja pole kunagi käeulatusest väljas.