Ако пишете програма VBA и искате да изпълните една и съща задача няколко пъти, можете да направите това, като използвате VBA за цикли. VBA е език за последователно програмиране. Всеки ред код се изпълнява отгоре надолу, докато няма повече редове код за четене. Ако искате да се върнете и да изпълните задача, трябва да принудите, като използвате макро код. Получавате резултати с цикъл.
For Loop във VBA е един от най -често срещаните видове цикъл. Цикълът For има две форми: For Next и For Every In Next. Цикълът For обикновено се използва за последователно преминаване през списък от елементи или числа. За да прекратим цикъла For във всяка дадена точка, можем да използваме командата exit. Защото Loop ще се върти наоколо, докато отговаря на крайното условие. След като крайното условие е изпълнено, потокът на програмиране ще продължи надолу, в естествената си посока.
Цикълът For… Next има следния синтаксис: For counter = start_counter To end_counter 'Направете нещо тук (вашият код) Следващ брояч
Всъщност създаваме цикъл, който използва променлива брояч като „пазител на времето“ на цикъла. Зададохме го на стойност, равна на start_counter в началото на цикъла и след това го увеличавайте с 1 по време на всеки цикъл, докато отговаря на крайното условие. Цикълът ще се изпълнява до момента, в който стойността на брояч става равно на end_counter. Цикълът се изпълнява за последен път, когато и двете горни стойности съвпадат и след това цикълът спира.
Всичко по -горе може да е объркващо за някои хора, така че нека се подготвим и започнем да изучаваме For Loop в excel с няколко примера.
- Създайте нова работна книга на Excel, след което я запазете с разширението .xlsm
- За да стартирате екрана за редактор на Visual Basic, използвайте ALT + F11
- Поставете нов модул
- Копирайте кода по -долу в стандартния модул VB
Цикъл 1 (Показване на номер с кутия за съобщения)
Sub Loop1 () Dim StartNumber As Integer Dim End EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & "е" & "Вашият StartNumber" Следващ StartNumber End Sub
Код Обяснение:
- Кодът VBA трябва да присвоите стойност на StartNumber, където EndNumber са променливи, които са декларирани като цели числа като отправна точка за вашия цикъл
- Тези стойности могат да бъдат произволни числа и имаме EndNumber като 5
- StartNumber започва в 1
- За StartNumber = 1 To EndNumber означава, че кодът ще започне от 1 (StartNumber) до 5 (EndNumber)
- MsgBox StartNumber & "is" & "Your StartNumber" ще покаже следното поле за съобщение
Loop2 (Попълване на стойности)
Sub Loop2 () 'Запълва клетки A1: A56 със стойности на X чрез цикъл' --- Коментар 'Увеличете стойността на X с 1 във всеки цикъл' --- Коментирайте Dim X As Integer For X = 1 To 56 Range ("A "& X). Стойност = X Следваща X Крайна подс
Код Обяснение:
- Присвоихме X като цяло число
- За X = 1 до 56; това ще започне с 1 и ще продължи до 56 с увеличение от 1 всеки път
- Диапазон ("A" & X). Стойност = X; този ред ще съхранява стойността на X и ще премине в диапазон A1 до A56
Loop3 (Попълнете клетките с цвят на фона)
Sub Loop3 () „Запълва клетки B1: B56 с 56 цвята на фона“ --- Коментирайте Dim X As Integer For X = 1 To 56 Range ("B" & X). Изберете с Selection.Interior .ColorIndex = X. Pattern = xlSolid End With Next X End Sub
Код Обяснение:
- Присвоихме X като цяло число
- За X = 1 до 56 ще започне с 1 и ще продължи до 56 с увеличение от 1 всеки път
- Диапазон ("B" & X). Изберете; този ред ще съхранява стойността на X и избира клетката B1 до B56
- Следващите 4 реда, т.е. С избор. Интериорът ще избере интериорен цвят индекс и ще вземе стойността от X на този цветен индекс, така че 1 принадлежи към черен цвят; 2 принадлежи към бял цвят; 3 за червено и така нататък
Цикъл 4 (Попълване на стойности с увеличение от 2)
По подразбиране стойността Step е напред 1, но може да бъде зададена на число повече от 1.
Sub Loop4 () 'Запълва всяка втора клетка от C1: C50 със стойности на X' --- Коментирайте Dim X As Integer For X = 1 To 50 Step 2 Range ("C" & X). Value = X Next X End Sub
Код Обяснение:
- Присвоихме X като цяло число
- За X = 1 до 50 Стъпка 2; това ще започне с 1 в X до 50 с увеличение от 2 всеки път
- Обхват ("C" & X). Стойност = X; този ред ще съхранява стойността на X и ще премине в диапазон C1 до C50
Цикъл 5 (VBA за цикъл в обратна посока с инструкция STEP)
Не е необходимо броячът във цикъла For да се движи само от ниски към по -високи стойности; вместо това цикълът For може да работи назад, т.е.превишено високи до по -ниски стойности.
Въпреки че по подразбиране стойността Step е 1, тя може да бъде зададена на число в обратен ред.
Sub Loop5 () 'Запълва клетките от D1: D50 със стойности на X' --- Коментирайте 'В този случай X намалява с 1' --- Коментирайте Dim X като цяло число, ред като цяло число = 1 за X = 50 до 0 Стъпка -1 Обхват ("D" & ред). Стойност = X ред = ред + 1 Следваща X End Sub
Код Обяснение:
- Присвоихме X & Row като цяло число
- Редът съдържа стойност 1
- За X = 50 до 0 Стъпка -1; това ще започне от 50 с намаляване с 1 в X до 0
- Диапазон ("D" & ред). Значение = X; този ред ще съхранява стойността на X и ще премине в диапазон D1 до D50
Цикъл 6 (Запълва всяка втора клетка в обратен ред със СТЪПКА-2)
В горния пример за цикъл For, можем да използваме Step и order, за да видим дали цикълът For работи в посока напред или назад.
Sub Loop6 () 'Запълва всяка втора клетка от E1: E100 със стойности на X' --- Коментар 'В този случай X намалява с 2' --- Коментар Dim X As Integer, Row As Integer Row = 1 For X = 100 До 0 Стъпка -2 Диапазон ("E" & ред). Стойност = X ред = ред + 2 Следваща X End Sub
Код Обяснение:
- Присвоихме X & Row като цяло число
- Редът съдържа стойност 1
- За X = 100 до 0 Стъпка -2; това ще започне от 100 с намаляване с 2 в X до 0
- Диапазон ("E" & ред). Значение = X; този ред ще съхранява стойността на X и ще премине в диапазон E1 до E100
Цикъл 7 (За цикъл с условие IF: Запълва клетки, започвайки от конкретна клетка)
Това ще запълни клетките от клетка F11 със стойност 11, докато X отговаря на условието IF
Sub Loop7 () 'Започва да запълва клетки F11: F100 със стойности на X' --- Коментар 'Това ще излезе от цикъла след 50' --- Коментар Dim X As Integer За X = 11 до 100 Диапазон ("F" & X). Стойност = X Ако X = 50 Тогава MsgBox ("Чао чао") Излезте за край, ако следващ X край Sub
Код Обяснение:
- Присвоихме X като цяло число
- За X = 11 до 100; ще започне от 11 с увеличение с 1 в X, докато условието не изпълни
- Обхват ("F" & X). Стойност = X; този ред ще съхранява стойността на X и ще премине в диапазон F11, докато условието не отговаря
- След въвеждане на стойност 50 в клетка F50 ще се покаже следното поле за съобщение
Заключение: С горните 7 примера можем да приложим цикъл For в нашата редовна или всяка част за автоматизация.
Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта