Обхват за избор на Excel VBA
След като основите напълнят VBA, е важно да разберете как да работите с набор от клетки в работния лист. След като започнете да изпълнявате кодовете практически през повечето време, трябва да работите с набор от клетки, така че е важно да разберете как да работите с набор от клетки и една такава концепция е VBA „Избор на диапазон“. В тази статия ще ви покажем как да работите с „Обхват на избор“ в Excel VBA.
Изборът и обхватът са две различни теми, но когато казваме да изберете обхват или избор на обхват, това е една концепция. RANGE е обект, “Selection” е свойство, а “Select” е метод. Хората са склонни да бъркат с тези термини. Важно е да знаете разликите като цяло.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba_.jpg.webp)
Как да изберете диапазон в Excel VBA?
Пример # 1
Например, предположим, че тогава искате да изберете клетката A1 в работния лист. Първо, трябва да посочим адреса на клетката, като използваме обект RANGE, както по-долу.
Код:
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__2.jpg.webp)
След като споменахте клетката, която трябва да изберете, поставете точка, за да видите списъка IntelliSense, който е свързан с обекта RANGE.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__3.jpg.webp)
Оформете това разнообразие от списъци и изберете метода "Избор".
Код:
Sub Range_Example1 () Range ("A1"). Изберете End Sub
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__4.jpg.webp)
Сега този код ще избере клетката А1 в активния работен лист.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba_.gif)
Ако искате да изберете клетката в различните работни листове, първо трябва да посочим работния лист с името му. За да посочим работния лист, трябва да използваме обекта „WORKSHEET“ и да въведем името на работния лист в двойни кавички.
Например, ако искате да изберете клетка А1 в работния лист „Лист с данни“, тогава първо посочете работния лист точно както по-долу.
Код:
Sub Range_Example1 () Работни листове ("Лист с данни") Край Sub
След това продължете кода, за да посочите какво трябва да направим в този лист. В „Лист с данни“ трябва да изберете клетка A1, така че кодът ще бъде RANGE („A1“). Изберете.
Код:
Sub Range_Example1 () Работни листове ("Лист с данни"). Диапазон ("A1"). Изберете End Sub
Когато се опитате да изпълните този код, ще получим грешката по-долу.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__5.jpg.webp)
Причината за това е „не можем директно да предоставим обект от диапазон и да изберете метод на обекта на работни листове.“
Първо трябва да изберем или активираме работния лист на VBA и след това да можем да правим каквото и да сме искали.
Код:
Sub Range_Example1 () Работни листове ("Лист с данни"). Активирайте диапазон ("A1"). Изберете End Sub
Сега това ще избере клетката А1 в работния лист „Лист с данни“.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__2.gif)
Пример # 2 - Работа с текущо избран диапазон
Select е различно нещо и работата с вече избран диапазон от клетки е различна. Да предположим, че искате да вмъкнете стойност „Hello VBA“ в клетката A1, тогава можем да го направим по два начина.
Първо, можем директно да предадем кода на VBA като RANGE („A1"). Стойност = „Здравейте, VBA."
Код:
Sub Range_Example1 () Range ("A1"). Value = "Hello VBA" End Sub
Това, което ще направи този код, е, че просто ще вмъкне стойността “Hello VBA” в клетка A1, независимо коя клетка е избрана в момента.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__3.gif)
Погледнете горния резултат от кода. Когато изпълним този код, той е вмъкнал стойността „Hello VBA“, въпреки че избраната в момента клетка е B2.
На второ място, можем да вмъкнем стойността в клетката, като използваме свойството “Selection”. За това първо трябва да изберем ръчно клетката и да изпълним кода.
Код:
Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub
Това, което ще направи този код, е, че ще вмъкне стойността “Hello VBA” в текущо избраната клетка. Например, вижте примера по-долу за изпълнение.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__4.gif)
Когато изпълних кода, текущата ми избрана клетка беше B2 и нашият код вмъкна същата стойност в избраната в момента клетка.
Сега ще избера клетката B3 и ще изпълня, там също ще получим същата стойност.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__6.jpg.webp)
Още нещо, което можем да направим със свойството “selection” е, че можем да вмъкнем стойност и в повече от една клетка. Например сега ще избера диапазона от клетки от А1 до В5.
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__7.jpg.webp)
Сега, ако изпълня кода, за всички избрани клетки ще получим стойността като „Hello VBA.“
![](https://cdn.know-base.net/4830615/vba_selection_range_how_to_select_a_range_in_excel_vba__5.gif)
И така, простата разлика между посочването на адреса на клетката от RANGE обект и свойството Selection е, че в Range обектният код ще вмъкне стойност към клетките, които са посочени изрично.
Но в обекта Selection няма значение в коя клетка се намирате. Той ще вмъкне споменатата стойност във всички избрани клетки.
Неща, които трябва да запомните тук
- Не можем директно да предоставим метода select в свойството Selection.
- RANGE е обект, а изборът е свойство.
- Вместо обхват можем да използваме свойството CELLS.