Как да използвате циклите For-Next в Excel 2016 VBA

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

Пример For-Next

Следващият пример използва цикъл For-Next за сумиране на първите 1000 положителни числа. Променливата Total започва от нула. След това се получава примката. Променливата Cnt е броячът на цикъла. Започва като 1 и се увеличава с 1 всеки път през цикъла. Цикълът завършва, когато Cnt е 1000.

Този пример има само едно изявление вътре в цикъла. Този израз добавя стойността на Cnt към променливата Total. Когато цикълът приключи, MsgBox показва сбора от числата.

Поддобавителни номера()
  Dim Total като двойно
  Dim Cnt As Long
  Общо = 0
  За Cnt = 1 до 1000
    Общо = Общо + Cnt
  Следваща Cnt
  MsgBox Общо
Край под

Тъй като броячът на цикъла е нормална променлива, можете да напишете код, за да промените стойността му в блока код между операторите For и Next. Това обаче е много лоша практика.

For-Next примери със стъпка

Можете да използвате стойност на стъпка, за да пропуснете някои стойности на брояча в цикъл For-Next. Ето предишния пример, пренаписан да сумира само нечетните числа между 1 и 1000:

Sub AddOddNumbers()
  Dim Total като двойно
  Dim Cnt As Long
  Общо = 0
  За Cnt = 1 до 1000 Стъпка 2
    Общо = Общо + Cnt
  Следваща Cnt
  MsgBox Общо
Край под

Този път Cnt започва като 1 и след това приема стойности от 3, 5, 7 и т.н. Стойността Step определя как се увеличава броячът. Забележете, че горната стойност на цикъла (1000) всъщност не се използва, защото най-високата стойност на Cnt ще бъде 999.

Ето още един пример, който използва стойност на стъпка 3. Тази процедура работи с активния лист и прилага светлосиво засенчване към всеки трети ред, от ред 1 до ред 100.

Sub ShadeEveryThirdRow()
  Dim i As Long
  За i = 1 до 100 Стъпка 3
    Редове(i).Интериор.Цвят = RGB(200, 200, 200)
  Следваща и
Край под

Вижте резултата от изпълнението на този макрос.

Как да използвате циклите For-Next в Excel 2016 VBA

Използване на цикъл за прилагане на засенчване на фона към редовете.

Пример For-Next с оператор Exit For

Цикълът For-Next може също да включва един или повече оператори Exit For в рамките на цикъла. Когато VBA срещне това изявление, цикълът приключва незабавно.

Следващият пример демонстрира оператора Exit For. Тази рутина е функция на процедура, предназначена да се използва във формула на работен лист. Функцията приема един аргумент (променлива с име Str) и връща знаците отляво на първата числова цифра. Например, ако аргументът е „KBR98Z“, функцията връща „KBR“.

Функция TextPart(Str)
  Dim i As Long
  TextPart = „“
  За i = 1 до Len(Str)
    Ако IsNumeric(Mid(Str, i, 1)) Тогава
      Изход за
    иначе
      TextPart = TextPart & Mid(Str, i, 1)
    Край, ако
  Следваща и
Крайна функция

Цикълът For-Next започва с 1 и завършва с числото, което представлява броя на знаците в низа. Кодът използва функцията Mid на VBA за извличане на един символ в цикъла. Ако се намери числов знак, операторът Exit For се изпълнява и цикълът завършва преждевременно.

Ако знакът не е числов, той се добавя към върнатата стойност (която е същата като името на функцията). Единственият път, когато цикълът ще разгледа всеки знак, е ако низът, предаден като аргумент, не съдържа числови знаци.

Пример за вложен For-Next

Можете да имате произволен брой изрази в цикъла и да вложите цикли For-Next в други цикли For-Next.

Следващият пример използва вложен цикъл For-Next за вмъкване на произволни числа в диапазон от клетки от 12 реда по 5 колони. Забележете, че рутината изпълнява вътрешния цикъл (цикла с брояча на редове) веднъж за всяка итерация на външния цикъл (цикла с брояча Col). С други думи, рутината изпълнява оператора Cells(Row, Col) = Rnd 60 пъти.

Как да използвате циклите For-Next в Excel 2016 VBA

Тези клетки бяха запълнени чрез използване на вложен цикъл For-Next.

Sub FillRange()
  Dim Col As Long
  Затъмнен ред толкова дълго
  За Col = 1 до 5
    За ред = 1 до 12
      Клетки (Row, Col) = Rnd
    Следващ ред
  Следващият полк
Край под

Следващият пример използва вложени цикли For-Next, за да инициализира триизмерен масив със стойност 100. Тази рутина изпълнява оператора в средата на всички цикли (изявлението за присвояване) 1000 пъти (10 * 10 * 10), всеки път с различна комбинация от стойности за i, j и k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  За i = 1 до 10
    За j = 1 до 10
      За k = 1 до 10
        MyArray(i, j, k) = 100
    Следващият к
  Следващото j
Следваща и
  Други изявления са тук
Край под

Ето последен пример, който използва вложени цикли For-Next със стойност Step. Тази процедура създава шахматна дъска чрез промяна на цвета на фона на редуващите се клетки.

Как да използвате циклите For-Next в Excel 2016 VBA

Използване на цикли за създаване на шахматна дъска.

Броячът на ред се завърта от 1 до 8. Конструкцията If-Then определя коя вложена структура For-Next да се използва. За редове с нечетен номер броячът Col започва с 2. За редове с четни номера броячът Col започва с 1. И двата цикъла използват стойност на стъпка 2, така че алтернативните клетки са засегнати. Две допълнителни твърдения правят клетките квадратни (точно като истинска шахматна дъска).

Sub MakeCheckerboard()
  Dim R толкова дълго, C колкото дълго
  За R = 1 до 8
    Ако WorksheetFunction.IsOdd(R) Тогава
     За C = 2 до 8 Стъпка 2
       Клетки (R, C). Интериор. Цвят = 255
     Следващият C
    иначе
     За C = 1 до 8 Стъпка 2
       Клетки (R, C). Интериор. Цвят = 255
     Следващият C
    Край, ако
  Следващият Р
  Редове(“1:8”).Височина на реда = 35
  Колони(“A:H”).Ширина на колона = 6,5
Край под

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

Научете как да използвате инструменти за социални мрежи на SharePoint, които позволяват на индивиди и групи да общуват, да си сътрудничат, споделят и да се свързват.

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]