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