VBA Lietotais diapazons - Kā atrast izmantoto rindu un kolonnu skaitu?

Satura rādītājs

Lietotie diapazoni, kā norāda nosaukums, ir diapazoni, kas kā kaut kāda veida vērtības tajos tukšās šūnas netiek iekļautas izmantotajos diapazonos, tāpēc VBA izmantotie diapazoni ir VBA diapazona objekta īpašums šiem šūnu diapazoniem rindas un kolonnas, kas nav tukšas un kurās ir dažas vērtības.

Lietotais diapazons VBA Excel

Lietotais diapazons VBA ir darblapas rekvizīts, kas atgriež diapazona objektu, kas apzīmē izmantoto diapazonu (visas izmantotās Excel šūnas vai aizpildītas darblapā) konkrētā darblapā. Tas ir rekvizīts, kas apzīmē laukumu, ko darblapā klāj vai ierobežo augšējā kreisajā pusē izmantotās šūnas un pēdējās pa labi izmantotās šūnas.

Mēs varam aprakstīt “Izmantotā šūna” kā šūnu, kurā ir jebkura formula, formatējums, vērtība utt. Mēs varam arī atlasīt pēdējo izmantoto šūnu, nospiežot tastatūras taustiņus CTRL + END.

Tālāk ir izmantota darblapas UsedRange ilustrācija:

Iepriekš redzamajā ekrānuzņēmumā mēs varam redzēt, ka UsedRange ir A1: D5.

Excel VBA UsedRange Property piemēri

Apskatīsim dažus piemērus, lai redzētu, kā darblapā esošo rekvizītu UsedRange var izmantot, lai atrastu VBA izmantoto diapazonu:

1. piemērs

Pieņemsim, ka mums ir Excel fails, kurā ir divas darblapas, un mēs vēlamies atrast un atlasīt izmantoto diapazonu Sheet1.

Apskatīsim, ko satur 1. lapa:

Šī uzdevuma veikšanai mēs izmantojam rekvizītu UsedRange logā VBA Immediate. VBA tūlītējais logs ir rīks, kas palīdz iegūt informāciju par Excel failiem, ātri izpildīt vai atkļūdot jebkuru VBA kodu, pat ja lietotājs neraksta nevienu makro. Tas atrodas Visual Basic redaktorā, un tam var piekļūt šādi:

  • Dodieties uz cilni Izstrādātājs Excel un pēc tam noklikšķiniet uz Visual Basic Editor vai nospiediet Alt + F11, lai atvērtu Visual Basic Editor logu.

To darot, tiek atvērts šāds logs:

  • Nospiediet Ctrl + G, lai atvērtu tūlītējo logu, un ierakstiet kodu.

Tiešais logs izskatās šādi:

  • Šis kods atlasīs izmantoto diapazonu Sheet1.

Kods:

? Darblapas ("Sheet1"). Aktivizēt True? ActiveSheet.UsedRange.Select True

Pirmais koda paziņojums aktivizēs faila Sheet1, un otrajā paziņojumā tiks atlasīts aktīvās lapas izmantotais diapazons.

Rakstot šo kodu, redzam, ka 1. tabulā izmantotais diapazons tiek izvēlēts šādi:

2. piemērs

Tagad, pieņemsim, ka šajā piemērā mēs vēlamies atrast 1. lapā izmantoto kopējo rindu skaitu. Lai to izdarītu, mēs rīkojamies šādi:

  • Modulī izveidojiet makro nosaukumu.

Kods:

Sub TotalRows () Beigas Sub
  • Definējiet mainīgo TotalRow kā veselu skaitli VBA:

Kods:

Sub TotalRows () Dim TotalRow kā vesels skaitlis End Sub
  • Tagad piešķiriet mainīgo TotalRow ar formulu, lai aprēķinātu kopējo rindu skaitu:

Kods:

Sub TotalRows () Dim TotalRow kā vesels skaitlis TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Tagad iegūto TotalRow vērtību var parādīt un atgriezt, izmantojot VBA ziņojumu lodziņu (MsgBox) šādi:

Kods:

Sub TotalRows () Dim TotalRow kā vesels skaitlis TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Tagad mēs palaižam šo kodu manuāli vai nospiežot F5, un mēs kopējo rindu skaitu, kas izmantotas Sheet1, tiek parādīts ziņojumu lodziņā šādi:

Tātad, iepriekš redzamajā ekrānuzņēmumā mēs varam redzēt, ka ziņojuma lodziņā tiek atgriezts “5”, un, kā mēs redzam 1. lapā, kopējais izmantoto diapazonu rindu skaits ir 5.

3. piemērs

Līdzīgi, ja mēs vēlamies atrast kopējo kolonnu skaitu, kas izmantots 1. lapā, mēs rīkosimies tāpat kā iepriekš, izņemot nelielas izmaiņas kodā šādi:

Kods:

Sub TotalCols () Dim TotalCol kā veselais skaitlis TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Now when we run this code manually or by pressing F5, we get the total number of columns used in Sheet1 displayed in a Message Box as follows:

So, ‘4’ is returned in the message box, and as we can see in Sheet1, the total number of columns in the used range is 4.

Example #4

Now, let’s say we wish to find the last used row and column number in Sheet2 of the file. Let us see what the Sheet2 contains:

To do this, we follow the below steps:

  • Create a macro name in the module.

Code:

Sub LastRow() End Sub
  • Define the variable LastRow as Integer.

Code:

Sub LastRow() Dim LastRow As Integer End Sub
  • Now assign the variable LastRow with the formula to calculate the last used row number:

Code:

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

Īpašās šūnas metode programmā Excel VBA atgriež diapazona objektu, kas pārstāv tikai norādītos šūnu veidus. SpecialCells metodes sintakse ir šāda:

RangeObject.SpecialCells (tips, vērtība)

Iepriekš minētajā kodā xlCellTypeLastCell: apzīmē pēdējo šūnu izmantotajā diapazonā.

Piezīme: 'xlCellType' tiks iekļautas pat tukšas šūnas, kuru jebkuras šūnas noklusējuma formāts ir mainīts.
  • Tagad iegūto LastRow numura vērtību var parādīt un atgriezt, izmantojot ziņojumu lodziņu (MsgBox) šādi:

Kods:

Sub LastRow () Dim LastRow kā vesels skaitlis LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Rinda MsgBox LastRow End Sub
  • Tagad mēs palaižam šo kodu manuāli vai nospiežot F5, un pēdējais izmantotais rindas numurs Sheet2 tiek parādīts ziņojumu lodziņā šādi:

So, we can see in the above screenshot that ‘12’ is returned in the message box, and as we can see in Sheet2, the last used row number is 12.

Similarly, if we wish to find the last used column number in Sheet2, we will follow the same steps as above except for a slight change in the code as follows:

Code:

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

Now when we run this code manually or by pressing F5, we get the last used column number in Sheet2 displayed in a Message Box as follows:

So, we can see in the above screenshot that ‘3’ is returned in the message box, and as we can see in Sheet2, the last used column number is 3.

Things to Remember About VBA UsedRange

  • VBA UsedRange is a rectangle range.
  • VBA UsedRange includes cells having any data or being formatted etc.
  • Excel VBA UsedRange ne vienmēr ietver darblapas augšējo kreiso šūnu.
  • Lietotais diapazons ne vienmēr uzskata aktīvo šūnu par lietotu.
  • Izmantoto diapazonu var izmantot, lai atrastu pēdējo izmantoto rindu VBA un atiestatītu izmantoto diapazonu utt.
  • Nospiežot īsinājumtaustiņus Excel taustiņus CTRL + SHIFT + ENTER uz tastatūras, var izmantot, lai paplašinātu atlasi no aktīvās šūnas uz pēdējo izmantoto šūnu darblapā.

Interesanti raksti...