VBA за преминаване през редове в диапазон в Excel (6 примера)

  • Споделя Това
Hugh West

В този урок ще разгледаме как да използваме VBA за преминаване през редове в диапазон в Excel. Използваме цикли, за да предотвратим повторното извършване на едно и също нещо. Microsoft Excel , може да се окажем в ситуация, в която трябва да изпълним една и съща задача многократно. Можем да направим това лесно, като използваме цикли в VBA . В тази статия ще демонстрираме 6 примери за преминаване през редове в Excel с VBA Цикълът, който ще използваме в примерите, е Цикъл For-Next '.

Изтегляне на работна тетрадка за практика

Можем да изтеглим работната тетрадка за упражнения от тук.

VBA Цикъл през редове в Range.xlsm

6 примера за циклично преминаване през редове в диапазон с VBA в Excel

За да илюстрираме примерите от този урок, ще използваме следната съвкупност от данни. Съвкупността от данни съдържа суми за продажби за първите два месеца на 5 търговци .

1. Използване на VBA в Range с променлива Range за цикъл през редове

В първия пример ще използваме променливата range, за да преминем през редовете в обхвата, като използваме VBA в excel. Ще приложим VBA цикъл в следния набор от данни.

Нека видим стъпките за изпълнение на този пример.

СТЪПКИ:

  • За начало отидете в активния работен лист Обхват Променлива '.
  • Освен това, щракване с десния бутон на мишката върху и изберете опцията Вижте кода '. Можете също така да натиснете Alt + F11 за да го отворите.

  • Горното действие отваря прозорец с код за този работен лист.
  • След това въведете кода в прозореца за код:
 Sub VBA_Loop_through_Rows() Dim w As Range For Each w In Range("B5:D9").Rows w.Cells(1).Interior.ColorIndex = 35 Next End Sub 
  • След това щракнете върху Изпълнявайте или натиснете F5 за да стартирате кода.

  • Накрая ще получим резултати като на следната снимка.

Прочетете още: Excel VBA: Цикъл през колони в диапазон (5 примера)

2. Прилагане на VBA за преминаване през редове в диапазон с числова променлива

Друга възможност за преминаване през редове в даден диапазон е да изберете променливата. Във втория пример ще приложим VBA в следния набор от данни, за да преминете през редове в диапазон с числови променливи.

Нека разгледаме стъпките за изпълнение на този метод.

СТЪПКИ:

  • Първо, щракване с десния бутон на мишката върху на активния лист с име Цифрова стойност '.
  • След това изберете опцията Вижте кода '.

  • Това действие ще отвори прозорец с код за този работен лист. Alt + F11 за да отворите този прозорец с код.
  • въведете следния код в този прозорец:
 Sub VBA_Numeric_Variable() Dim w As Integer With Range("B5").CurrentRegion For w = 1 To .Columns.Count .Columns(w).NumberFormat = "$0.00" Next End With End Sub 
  • След това щракнете върху Изпълнявайте или натиснете бутона F5 за да стартирате кода.

  • Накрая можем да видим резултати като на следната снимка. Горният код променя формата на числото в десетични точки.

Прочетете още: VBA за цикъл през редове и колони в диапазон в Excel (5 примера)

3. Excel VBA в избран от потребителя диапазон за цикъл през редове в диапазона

В третия пример ще използваме VBA в избран от потребителя диапазон, за да се направи цикъл през редовете в диапазона. Така потребителят ще може да приложи цикъл в избрана област от набора от данни.

Нека видим стъпките, свързани с този пример.

СТЪПКИ:

  • В началото изберете обхвата от клетки ( D5:D9 ).

  • Следващия, щракване с десния бутон на мишката върху на активния лист с име Избран от потребителя '. Изберете опцията ' Вижте кода '.

  • Горната команда ще отвори VBA Можете също така да отворите този прозорец с код, като натиснете Alt + F11 . Въведете следния код в празния прозорец за код:
 Sub VBA_User_Selection() Dim w As Variant Set xRange = Selection For Each w In xRange MsgBox "Cell value = " & w.Value Next w End Sub 
  • След това, за да стартирате кода за този работен лист, щракнете върху Изпълнявайте или натиснете бутона F5 ключ.

  • Така се появява поле за съобщение, в което се показва първата стойност от избрания диапазон.

  • Освен това, ако щракнете върху ОК ще върне втората стойност от избрания диапазон, която е клетка D6 .

  • Този процес ще продължи до последната стойност от избрания диапазон, която е клетка D9 .

Прочетете още: Как да използвате VBA за броене на редове в диапазон с данни в Excel (5 макроса)

Подобни четива

  • Как да използвате VBA за избор на обхват от активна клетка в Excel (3 метода)
  • Макрос на Excel: Сортиране на няколко колони с динамичен обхват (4 метода)
  • Как да конвертирате диапазон в масив в Excel VBA (3 начина)

4. Преминаване през редове в динамичен диапазон с VBA

В четвъртия пример ще приложим VBA Този пример е малко по-различен от предишните. Ще можем да персонализираме обхвата в цикъла за работния лист на Excel. Ще използваме следния набор от данни, за да илюстрираме този метод. В следния набор от данни ще попълним стойностите на обхвата ( B8:C12 ) с определена стойност.

Просто преминете през следните стъпки, за да приложите този метод.

СТЪПКИ:

  • Първо, входна стойност 6 в клетка B1 и C в клетка B2 .
  • Второ, щракване с десния бутон на мишката върху върху активната клетка и изберете опцията Вижте кода '.

  • Тази команда ще отвори VBA Друг начин за отваряне на прозореца с кода за активния работен лист е да натиснете Alt + F11 .
  • На трето място въведете следния код в този прозорец за код:
 Sub Dynamic_Range() Dim xRange As String xRange = "B8:" + Worksheets("Dynamic Range").Cells(2, 2).Value + _ CStr(3 + Worksheets("Dynamic Range").Cells(1, 2).Value) За всеки ред в Range(xRange) За всяка клетка в ред Cell.Value = "$2500.00" Следваща клетка Следващ ред End Sub 
  • Сега, за да стартирате кода, щракнете върху Изпълнявайте или натиснете бутона F5 ключ.

  • В резултат на това наборът от данни се запълва със стойността $2500.00 по следния начин.

ЗАБЕЛЕЖКА:

В горното изображение стойността 6 представлява първите два реда от диапазона ( B8:B9 ).

  • Накрая въведете стойността 9 в клетка B1 вместо 6 . Резултатите се виждат на следното изображение.

5. Вмъкване на VBA за цикъл през целия ред в обхвата

В петия пример ще видим как можем да приложим VBA за да преминете през целия ред в обхвата. Този пример ще намери позицията на определена стойност от избран един или няколко реда.

Нека видим стъпките, които ще следваме, за да изпълним този пример.

СТЪПКИ:

  • Като начало, щракване с десния бутон на мишката върху на активния лист с име Целият ред '. Изберете опцията ' Вижте кода '.

  • Горната команда отваря празен VBA Прозорец с код за активния работен лист. Можем също така да получим този прозорец с код, като натиснем Alt + F11 .
  • След това въведете следния код в прозореца за код:
 Sub VBA_Loop_Entire_Row() Dim w As Range For Each w In Range("5:9") If w.Value = "Chris" Then MsgBox "Chris found at " & w.Address End If Next w End Sub 
  • След това щракнете върху Изпълнявайте или натиснете бутона F5 за да стартирате кода.

  • В горното изображение маркираната стойност Крис ' посочва стойността, която ще търсим. Стойност на обхвата ' 5:9 ' показва, че ще търсим стойността в диапазона от клетки ( B5:B9 ).
  • Накрая се появява поле със съобщение, че стойността Крис ' се намира в клетка B6 .

Прочетете още: Как да използвате VBA за всеки ред в диапазон в Excel

6. Преминаване през всеки n-ти ред в обхвата с Excel VBA

В последния пример ще приложим VBA за да преминете през всеки n-ти Ред в диапазона. В следващата съвкупност от данни ще приложим цветно засенчване към нечетния брой редове от нашия диапазон от данни.

Нека видим стъпките за изпълнение на този метод.

СТЪПКИ:

  • Първо, щракване с десния бутон на мишката върху на активния лист с име n-ти ред '. Изберете опцията ' Вижте кода '.

  • След това се отваря празен VBA Прозорец с код за този работен лист. Можем също така да получим този прозорец с код, като натиснем Alt + F11 .
  • След това въведете следния код в следващия прозорец за код:
 Sub ShadeRows1() Dim r As Long With Range("B5").CurrentRegion For r = 1 To .Rows.Count If r / 2 = Int(r / 2) Then 'четни редове .Rows(r).Interior.ColorIndex = 43 End If Next End With End Sub 
  • Сега кликнете върху Изпълнявайте или натиснете бутона F5 за да стартирате кода.

  • Накрая можем да видим, че горният код засенчва само нечетните редове от нашата съвкупност от данни.

Прочетете още: Excel VBA за циклично преминаване през диапазона до празна клетка (4 примера)

Заключение

В заключение, този урок ви дава 6 примери за преминаване през редове в диапазон с VBA в Excel. Изтеглете работния лист за упражнения, съдържащ се в тази статия, за да изпробвате уменията си. Ако имате някакви въпроси, моля, оставете коментар в полето по-долу. Нашият екип ще се опита да отговори на съобщението ви възможно най-скоро. Следете за още изобретателни Microsoft Excel решения в бъдеще.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.