VBA UsedRange | Com es pot trobar el nombre de files i columnes usades?

UsedRange, com el seu nom indica, són els intervals que, com a tipus de valors, les cel·les buides no s’inclouen als intervals utilitzats, de manera que a VBA Els intervals usats són la propietat de l’objecte d’interval a VBA per a l’interval de cel·les de files i columnes que no estan buides i contenen alguns valors.

UsedRange a VBA Excel

UsedRange a VBA és una propietat del full de treball que retorna un objecte d’interval que representa l’interval utilitzat (totes les cel·les d’Excel utilitzades o emplenades en un full de treball) en un full de treball concret. És una propietat que representa l'àrea coberta o delimitada per la cel·la usada superior esquerra i l'última cel·la utilitzada dreta d'un full de càlcul.

Podem descriure "Cel·la usada" com una cel·la que conté qualsevol fórmula, format, valor, etc. També podem seleccionar l'última cel·la utilitzada prement les tecles CTRL + FIN del teclat.

A continuació es mostra una il·lustració d’un UsedRange en un full de treball:

Podem veure a la captura de pantalla anterior que UsedRange és A1: D5.

Exemples de propietats UsedRange d'Excel VBA

Vegem alguns exemples a continuació per veure com es pot utilitzar la Propietat UsedRange en un full de treball per trobar l'interval utilitzat a VBA:

Podeu descarregar aquesta plantilla Excel VBA UsedRange aquí - Plantilla Excel VBA UsedRange

Exemple 1

Diguem que tenim un fitxer Excel que conté dos fulls de treball i volem trobar i seleccionar l’interval utilitzat a Sheet1.

Vegem què conté el Full1:

Utilitzem la propietat UsedRange a la finestra immediata de VBA per realitzar aquesta tasca. La finestra immediata de VBA és una eina que permet obtenir informació sobre fitxers Excel, executar o depurar ràpidament qualsevol codi VBA, fins i tot si l’usuari no escriu cap macros. Es troba a Visual Basic Editor i s’hi pot accedir de la manera següent:

  • Aneu a la pestanya Desenvolupador Excel i feu clic a Visual Basic Editor o premeu Alt + F11 per obrir la finestra de Visual Basic Editor.

En fer-ho, s'obre una finestra de la següent manera:

  • Premeu Ctrl + G per obrir la finestra immediata i escriure el codi.

La finestra immediata té el següent aspecte:

  • El codi següent seleccionarà l'interval utilitzat a Full1

Codi:

? Fulls de treball ("Full1"). Activeu True? ActiveSheet.UsedRange.Select True

La primera sentència del codi activarà el Full 1 del fitxer i la segona sentència seleccionarà l'interval utilitzat en aquest full actiu.

En escriure aquest codi, veiem que l’interval utilitzat a Full1 es selecciona de la manera següent:

Exemple 2

Ara, diguem que en aquest exemple volem trobar el nombre total de files utilitzades al full 1. Per fer-ho, seguiu els passos següents:

  • Creeu un nom de macro al mòdul.

Codi:

 Sub TotalRows () Final Sub 

  • Definiu la variable TotalRow com a enter a VBA:

Codi:

 Sub TotalRow () Atenua TotalRow com a final enter Sub 

  • Ara assigneu la variable TotalRow amb la fórmula per calcular el nombre total de files:

Codi:

 Sub TotalRow () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Ara es pot mostrar i retornar el valor resultant de TotalRow mitjançant un quadre de missatge VBA (MsgBox) de la següent manera:

Codi:

 Sub TotalRow () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Ara executem aquest codi manualment o prement F5 i obtenim el nombre total de files utilitzades al full 1 que es mostra en un quadre de missatges de la manera següent:

Per tant, podem veure a la captura de pantalla anterior que es torna "5" al quadre de missatges i, com podem veure a Full 1, el nombre total de files de l'interval utilitzat és de 5.

Exemple 3

De la mateixa manera, si volem trobar el nombre total de columnes utilitzades al full 1, seguirem els mateixos passos que els anteriors, excepte un lleuger canvi en el codi de la següent manera:

Codi:

 Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Ara, quan executem aquest codi manualment o prement F5, obtenim el nombre total de columnes utilitzades a Full1 que es mostren en un quadre de missatges de la manera següent:

Per tant, es retorna "4" al quadre de missatges i, com podem veure al full 1, el nombre total de columnes de l'interval utilitzat és de 4.

Exemple # 4

Ara, suposem que volem trobar l’última fila i número de columna utilitzats al full 2 ​​del fitxer. Vegem què conté el Full2:

Per fer-ho, seguiu els passos següents:

  • Creeu un nom de macro al mòdul.

Codi:

 Sub LastRow () Final Sub 

  • Definiu la variable LastRow com a enter.

Codi:

 Sub LastRow () Dim LastRow As Integer End Sub 

  • Ara assigneu la variable LastRow amb la fórmula per calcular l'últim número de fila utilitzat:

Codi:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Sub final de fila 

El mètode SpecialCells a Excel VBA retorna un objecte d’interval que només representa els tipus de cel·les especificades. La sintaxi del mètode SpecialCells és:

RangeObject.SpecialCells (tipus, valor)

Al codi anterior, xlCellTypeLastCell: representa l'última cel·la de l'interval utilitzat.

Nota: Fins i tot, ‘xlCellType’ inclourà cel·les buides que han canviat el format per defecte de qualsevol de les seves cel·les.
  • Ara es pot mostrar i retornar el valor resultant del número LastRow mitjançant un quadre de missatge (MsgBox) de la següent manera:

Codi:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub 

  • Ara executem aquest codi manualment o prement F5 i obtenim l’últim número de fila utilitzat a Full2 que es mostra en un quadre de missatges de la següent manera:

Per tant, podem veure a la captura de pantalla anterior que es retorna "12" al quadre de missatge i, com podem veure al full 2, l'últim número de fila utilitzat és 12.

De la mateixa manera, si volem trobar el darrer número de columna utilitzat al full 2, seguirem els mateixos passos que els anteriors, excepte un lleuger canvi en el codi de la següent manera:

Codi:

 Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub 

Ara, quan executem aquest codi manualment o prement F5, obtenim l'últim número de columna utilitzat a Full2 que es mostra en un quadre de missatges de la següent manera:

Per tant, podem veure a la captura de pantalla anterior que es retorna "3" al quadre de missatge i, com podem veure al full 2, l'últim número de columna utilitzat és 3.

Coses que cal recordar sobre VBA UsedRange

  • VBA UsedRange és un rang de rectangles.
  • VBA UsedRange inclou cel·les que tenen dades o estan formatades, etc.
  • Excel VBA UsedRange no inclou necessàriament la cel·la superior esquerra del full de treball.
  • UsedRange no necessàriament considera la cel·la activa com a utilitzada.
  • UsedRange es pot utilitzar per trobar l’última fila utilitzada a VBA i per restablir l’interval utilitzat, etc.
  • Prement les tecles de drecera Excel CTRL + MAJÚS + ENTRADA en un teclat es pot utilitzar per ampliar la selecció d'una cel·la activa a l'última cel·la utilitzada en un full de càlcul.