Vienkāršojiet diapazona nosaukšanu - Excel padomi

Satura rādītājs

Džaks jautā:

Es ģenerēju tabulas, vienādu kolonnu skaitu, bet katru reizi atšķirīgu rindu skaitu. Es bez problēmām varu noteikt pēdējo rindu un pēdējo kolonnu, lai veiktu nepieciešamos aprēķinus makro. Tagad mērķis ir šajā makro pievienot iespēju tabulu nosaukt (katru reizi ar vienu un to pašu nosaukumu), bet makro šūnu tabula, kas saistīta ar darblapu, ir R1C1: RxCy, es nezinu, kā rakstīt diapazonu izmantojot vērtības lastrow un lastcolumn (kas apzīmē tabulas pēdējo kolonnu un rindu) ar RC sistēmu (es pat nezinu, vai tas ir iespējams).

Lielākā daļa VBA programmētāju izmantotu šādu metodi, kurā tiek izmantota metode 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

Diapazona nosaukuma piešķiršanai ir vienkāršāka metode. Visi šie četri apgalvojumi ir līdzvērtīgi. Pēdējie divi ir ievērojami vieglāk:

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 - es pielāgotu pēdējo rindu lietošanai:

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

Es uzzināju šo saīsni diapazonu nosaukumu piešķiršanai no Bovey & Bullen Excel 2002 VBA Programmer's Reference. Šīs grāmatas 2002. gada versija riņķo ap 2000. gada versiju. Par manu naudu jebkuram Excel VBA programmētājam šī grāmata ir vajadzīga labajā rokā. Mana kopija ir suņu auss un nekad nav pieejama.

Interesanti raksti...