VBA UsedRange - Как да намеря броя на използваните редове и колони?

Съдържание

Използваният диапазон, както подсказва името, са диапазоните, които като някакъв вид стойности в тях, празните клетки не са включени в използваните диапазони, така че в VBA Използвани диапазони е свойството на обекта на диапазон във VBA за тези диапазони от клетки в редове и колони, които не са празни и имат някои стойности в себе си.

UsedRange във VBA Excel

UsedRange във VBA е свойство на работния лист, който връща обект от диапазон, представляващ използвания диапазон (всички клетки на Excel, използвани или попълнени в работен лист) на определен работен лист. Това е свойство, представляващо площта, покрита или ограничена от горната лява използвана клетка и последната дясна използвана клетка в работен лист.

Можем да опишем „Използвана клетка“ като клетка, съдържаща която и да е формула, форматиране, стойност и др. Можем също да изберем последната използвана клетка, като натиснем клавишите CTRL + END на клавиатурата.

Следва илюстрация на UsedRange в работен лист:

На горната екранна снимка можем да видим, че UsedRange е A1: D5.

Примери за свойство Excel VBA UsedRange

Нека разгледаме някои примери по-долу, за да видим как свойството UsedRange в работен лист може да се използва за намиране на използвания диапазон във VBA:

Пример # 1

Да кажем, че имаме файл на Excel, съдържащ два работни листа, и ние искаме да намерим и изберете използвания диапазон на Sheet1.

Нека видим какво съдържа Sheet1:

Използваме свойството UsedRange в прозореца VBA Immediate, за да изпълним тази задача. Непосредственият прозорец на VBA е инструмент, който помага за получаване на информация за файлове на Excel, бързо изпълнение или отстраняване на грешки на всеки VBA код, дори ако потребителят не пише макроси. Той се намира в редактора на Visual Basic и може да бъде достъпен по следния начин:

  • Отидете в раздела за програмисти Excel и след това щракнете върху Visual Basic Editor или натиснете Alt + F11, за да отворите прозореца на Visual Basic Editor.

При това се отваря прозорец, както следва:

  • Натиснете Ctrl + G, за да отворите непосредствения прозорец и въведете кода.

Непосредственият прозорец изглежда така:

  • Следният код ще избере използвания диапазон на Sheet1.

Код:

? Работни листове ("Sheet1"). Активиране на True? ActiveSheet.UsedRange.Select True

Първият израз на кода ще активира Sheet1 на файла, а вторият израз ще използва използвания диапазон в този активен лист.

При писането на този код виждаме, че диапазонът, използван в Sheet1, се избира по следния начин:

Пример # 2

Да кажем, в този пример искаме да намерим общия брой редове, използвани в лист 1. За да направим това, следваме стъпките по-долу:

  • Създайте име на макрос в модула.

Код:

Sub TotalRows () Край Sub
  • Определете променливата TotalRow като Integer във VBA:

Код:

Sub TotalRows () Dim TotalRow As Integer End Sub
  • Сега задайте променливата TotalRow с формулата, за да изчислите общия брой редове:

Код:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Сега получената стойност на TotalRow може да бъде показана и върната с помощта на поле за съобщения на VBA (MsgBox), както следва:

Код:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Сега стартираме този код ръчно или чрез натискане на F5 и получаваме общия брой редове, използвани в Sheet1, показан в полето за съобщения, както следва:

И така, можем да видим на горната екранна снимка, че „5“ се връща в полето за съобщения и както виждаме в Sheet1, общият брой редове в използвания диапазон е 5.

Пример # 3

По същия начин, ако искаме да намерим общия брой колони, използвани в Sheet1, ще следваме същите стъпки, както по-горе, с изключение на малка промяна в кода, както следва:

Код:

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

Сега, когато стартираме този код ръчно или чрез натискане на F5, получаваме общия брой колони, използвани в Sheet1, показани в полето за съобщения, както следва:

И така, „4“ се връща в полето за съобщения и както виждаме в Sheet1, общият брой колони в използвания диапазон е 4.

Пример # 4

Да кажем, че искаме да намерим последния използван номер на ред и колона в Sheet2 на файла. Нека видим какво съдържа Sheet2:

За целта следваме стъпките по-долу:

  • Създайте име на макрос в модула.

Код:

Sub LastRow () Край Sub
  • Определете променливата LastRow като Integer.

Код:

Sub LastRow () Dim LastRow като Integer End Sub
  • Сега задайте променливата LastRow с формулата, за да изчислите последния използван номер на реда:

Код:

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

Методът SpecialCells в Excel VBA връща обект от диапазон, който представлява само посочените видове клетки. Синтаксисът на метода SpecialCells е:

RangeObject.SpecialCells (тип, стойност)

В горния код xlCellTypeLastCell: представлява последната клетка в използвания диапазон.

Забележка: „xlCellType“ дори ще включва празни клетки, които са променили формата по подразбиране на някоя от клетките си.
  • Сега получената стойност на числото LastRow може да бъде показана и върната с помощта на поле за съобщение (MsgBox), както следва:

Код:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Сега стартираме този код ръчно или чрез натискане на F5 и получаваме последния използван номер на ред в Sheet2, показан в полето за съобщения, както следва:

И така, можем да видим на горната екранна снимка, че „12“ се връща в полето за съобщения и както виждаме в Sheet2, последният използван номер на реда е 12.

По същия начин, ако искаме да намерим последния използван номер на колона в Sheet2, ще следваме същите стъпки, както по-горе, с изключение на лека промяна в кода, както следва:

Код:

Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Колона MsgBox LastCol End Sub

Сега, когато стартираме този код ръчно или чрез натискане на F5, получаваме последния използван номер на колона в Sheet2, показан в полето за съобщения, както следва:

И така, можем да видим на горната екранна снимка, че „3“ се връща в полето за съобщения и както виждаме в Sheet2, последният използван номер на колоната е 3.

Неща, които трябва да запомните за VBA UsedRange

  • VBA UsedRange е обхват на правоъгълник.
  • VBA UsedRange включва клетки, които имат данни или са форматирани и т.н.
  • Excel VBA UsedRange не включва непременно горната лява клетка на работния лист.
  • UsedRange не смята непременно активната клетка за използвана.
  • UsedRange може да се използва за намиране на последния използван ред във VBA и за нулиране на използвания диапазон и т.н.
  • Натискането на клавишните комбинации на Excel CTRL + SHIFT + ENTER на клавиатура може да се използва за разширяване на селекцията от активна клетка до последната използвана клетка на работен лист.

Интересни статии...