Използваният диапазон, както подсказва името, са диапазоните, които като някакъв вид стойности в тях, празните клетки не са включени в използваните диапазони, така че в 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 на клавиатура може да се използва за разширяване на селекцията от активна клетка до последната използвана клетка на работен лист.