Supaprastinkite diapazono pavadinimą - „Excel“ patarimai

Jac klausia:

Generuoju lenteles, vienodą stulpelių skaičių, bet kiekvieną kartą skirtingą eilučių skaičių. Galiu be problemų nustatyti paskutinę eilutę ir paskutinį stulpelį, kad galėčiau atlikti reikiamus skaičiavimus makrokomandoje. Dabar tikslas yra pridėti šioje makrokomandoje galimybę pavadinti lentelę (kiekvieną kartą tuo pačiu pavadinimu), tačiau makrokomandoje ląstelių diapazonas, susietas su darbalapiu, yra R1C1: RxCy, aš nežinau, kaip parašyti diapazoną naudojant reikšmes lastrow ir lastcolumn (kurios nurodo paskutinį lentelės stulpelį ir eilutę) su RC sistema (net nežinau, ar tai įmanoma).

Dauguma VBA programuotojų naudos šį metodą, kuris naudoja „Names.Add“ metodą.

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

Yra lengvesnis diapazono pavadinimo priskyrimo metodas. Šie keturi teiginiai yra lygiaverčiai. Paskutiniai du yra žymiai lengvesni:

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 - paskutinę eilutę pritaikyčiau naudoti:

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

Šį diapazonų pavadinimų priskyrimo nuorodą sužinojau iš „Bovey & Bullen“ „Excel 2002 VBA“ programuotojo žinyno. 2002 m. Šios knygos versija sukasi aplink 2000 m. Versiją. Už mano pinigus bet kuriam „Excel VBA“ programuotojui tos knygos reikia dešinėje. Mano kopija yra ausinė ir niekada nepasiekiama.

Įdomios straipsniai...