Обхват за избор на VBA - Как да изберете диапазон в Excel VBA?

Обхват за избор на Excel VBA

След като основите напълнят VBA, е важно да разберете как да работите с набор от клетки в работния лист. След като започнете да изпълнявате кодовете практически през повечето време, трябва да работите с набор от клетки, така че е важно да разберете как да работите с набор от клетки и една такава концепция е VBA „Избор на диапазон“. В тази статия ще ви покажем как да работите с „Обхват на избор“ в Excel VBA.

Изборът и обхватът са две различни теми, но когато казваме да изберете обхват или избор на обхват, това е една концепция. RANGE е обект, “Selection” е свойство, а “Select” е метод. Хората са склонни да бъркат с тези термини. Важно е да знаете разликите като цяло.

Как да изберете диапазон в Excel VBA?

Пример # 1

Например, предположим, че тогава искате да изберете клетката A1 в работния лист. Първо, трябва да посочим адреса на клетката, като използваме обект RANGE, както по-долу.

Код:

След като споменахте клетката, която трябва да изберете, поставете точка, за да видите списъка IntelliSense, който е свързан с обекта RANGE.

Оформете това разнообразие от списъци и изберете метода "Избор".

Код:

Sub Range_Example1 () Range ("A1"). Изберете End Sub

Сега този код ще избере клетката А1 в активния работен лист.

Ако искате да изберете клетката в различните работни листове, първо трябва да посочим работния лист с името му. За да посочим работния лист, трябва да използваме обекта „WORKSHEET“ и да въведем името на работния лист в двойни кавички.

Например, ако искате да изберете клетка А1 в работния лист „Лист с данни“, тогава първо посочете работния лист точно както по-долу.

Код:

Sub Range_Example1 () Работни листове ("Лист с данни") Край Sub

След това продължете кода, за да посочите какво трябва да направим в този лист. В „Лист с данни“ трябва да изберете клетка A1, така че кодът ще бъде RANGE („A1“). Изберете.

Код:

Sub Range_Example1 () Работни листове ("Лист с данни"). Диапазон ("A1"). Изберете End Sub

Когато се опитате да изпълните този код, ще получим грешката по-долу.

Причината за това е „не можем директно да предоставим обект от диапазон и да изберете метод на обекта на работни листове.“

Първо трябва да изберем или активираме работния лист на VBA и след това да можем да правим каквото и да сме искали.

Код:

Sub Range_Example1 () Работни листове ("Лист с данни"). Активирайте диапазон ("A1"). Изберете End Sub

Сега това ще избере клетката А1 в работния лист „Лист с данни“.

Пример # 2 - Работа с текущо избран диапазон

Select е различно нещо и работата с вече избран диапазон от клетки е различна. Да предположим, че искате да вмъкнете стойност „Hello VBA“ в клетката A1, тогава можем да го направим по два начина.

Първо, можем директно да предадем кода на VBA като RANGE („A1"). Стойност = „Здравейте, VBA."

Код:

Sub Range_Example1 () Range ("A1"). Value = "Hello VBA" End Sub

Това, което ще направи този код, е, че просто ще вмъкне стойността “Hello VBA” в клетка A1, независимо коя клетка е избрана в момента.

Погледнете горния резултат от кода. Когато изпълним този код, той е вмъкнал стойността „Hello VBA“, въпреки че избраната в момента клетка е B2.

На второ място, можем да вмъкнем стойността в клетката, като използваме свойството “Selection”. За това първо трябва да изберем ръчно клетката и да изпълним кода.

Код:

Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub

Това, което ще направи този код, е, че ще вмъкне стойността “Hello VBA” в текущо избраната клетка. Например, вижте примера по-долу за изпълнение.

Когато изпълних кода, текущата ми избрана клетка беше B2 и нашият код вмъкна същата стойност в избраната в момента клетка.

Сега ще избера клетката B3 и ще изпълня, там също ще получим същата стойност.

Още нещо, което можем да направим със свойството “selection” е, че можем да вмъкнем стойност и в повече от една клетка. Например сега ще избера диапазона от клетки от А1 до В5.

Сега, ако изпълня кода, за всички избрани клетки ще получим стойността като „Hello VBA.“

И така, простата разлика между посочването на адреса на клетката от RANGE обект и свойството Selection е, че в Range обектният код ще вмъкне стойност към клетките, които са посочени изрично.

Но в обекта Selection няма значение в коя клетка се намирате. Той ще вмъкне споменатата стойност във всички избрани клетки.

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

  • Не можем директно да предоставим метода select в свойството Selection.
  • RANGE е обект, а изборът е свойство.
  • Вместо обхват можем да използваме свойството CELLS.

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