Jac megkérdezi:
Táblákat generálok, ugyanannyi oszlopot, de minden alkalommal különböző számú sort. Probléma nélkül meghatározhatom az utolsó sort és az utolsó oszlopot a számítások elvégzéséhez egy makróban. Most az a cél, hogy ebben a makróban hozzáadjuk a tábla elnevezésének lehetőségét (minden alkalommal ugyanazzal a névvel), de a makróban a munkalaphoz tartozó cellatartomány R1C1: RxCy, nem tudom, hogyan kell írni a tartományt a lastrow és lastcolumn értékek felhasználásával (amelyek a táblázat utolsó oszlopát és sorát képviselik) az RC rendszerrel (nem is tudom, lehetséges-e).
A legtöbb VBA programozó a következő módszert használja, amely a Names.Add metódust használja.
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
Van egy egyszerűbb módszer a tartománynév hozzárendelésére. A következő négy állítás mind egyenértékű. Az utóbbi kettő lényegesen könnyebb:
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 - Az utolsó sort használathoz igazítanám:
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
A tartománynevek hozzárendeléséhez ezt a parancsikont a Bovey & Bullen Excel 2002 VBA programozói referenciájából tanultam. A könyv 2002. évi változata körbejárja a 2000-es verziót. Az én pénzemért bármelyik Excel VBA programozónak a jobb kezére van szüksége. Az én példányom kutyafülű és soha nem elérhető.