Оглавление
Учимся пользоваться Object Browser
Выше была упомянута функция MsgBox, но ее возможности полностью не рассмотрены. Это хороший случай, чтобы научиться использовать браузер объектов (№5 на изображении окна редактора VBA).
Нажмите кнопку на панели или клавишу F2, чтобы отобразить Object Browser:
Выпадающий список №1 содержит перечень всех подключенных библиотек. Используйте его только в том случае, если точно знаете, к какой библиотеке относится изучаемый класс, функция и т.д. (подключить или отключить любую из доступных библиотек можно, выбрав пункт «References» на вкладке «Tools» главного меню редактора VBA).
Примечание: Библиотеки предоставляют стандартные и дополнительные возможности работы с объектами Excel (ячейки, листы, книги и т.д.), файловой системы, изображениями, базами данных и другими.
Поле №2 предназначено для поиска свойств, методов, классов подключенных библиотек.
Результаты поиска отображаются в поле №3 и представляют из себя таблицу с тремя столбцами: библиотека, класс и член класса.
Поле №4 содержит перечень всех классов, выбранных в поле №1 библиотек.
В области №5 содержится список всех членов класса, выбранного в поле №4.
Поле №6 содержит краткую справку о выделенном результате поиска, классе или члене класса.
Примечание: библиотеки, классы, функции и процедуры (методы), свойства и т.п. в Object Browser имеют различные обозначения, представленные набором пиктограмм. Краткая справка (поле №6) всегда указывает какой тип элемента выделен
Обращайте на это внимание, чтобы в дальнейшем лучше ориентироваться в работе с объектами
Примечание: Понятие объекта не относится к теме данной статьи и будет рассмотрено в следующих материалах.
Теперь найдем функцию MsgBox с помощью браузера объектов. В поле поиска (№2) впишите ее название и кликните по кнопке с изображением бинокля. В поле результатов поиска выделите строку со значением MsgBox в столбце «Member». В поле №6 появилась краткая информация, сообщающая нам, что выбранный член является функцией, имеет перечень аргументов, возвращает результат типа VbMsgBoxResult, относиться в классу Interaction библиотеки VBA.
Для получения полной справки кликните по кнопке с изображением вопросительного знака. В зависимости от версии Excel, Вас перенаправить на файл справки или сайт с документацией от Microsoft.
Изучите самостоятельно возможности функции MsgBox.
Синтаксис функции MsgBox
MsgBox (prompt, )
В синтаксисе функции MsgBox выделенные курсивом слова являются функции. , заключенные в квадратные скобки, использовать не обязательно. (Не используйте квадратные скобки в коде Visual Basic). Единственный обязательный аргумент для функции MsgBox это текст для приглашения.
Аргументы функций и методов можно указывать в коде двумя способами: по позиции или по имени. Чтобы указать аргументы по позиции, придерживайтесь порядка, представленного в синтаксисе, отделяя каждый аргумент запятой, например:
Чтобы указать аргументы по имени, необходимо после имени аргумента поставить двоеточие и знак равенства (:=), а затем задать значение аргумента. Именованные аргументы можно указывать в любом порядке, например:
Синтаксис функций и некоторых методов содержит аргументы, заключенные в скобки. Это необходимо для присвоения значения переменной, так как эти функции и методы возвращают значения. Не используйте скобки, если вы не учитываете возвращаемое значение или не передаете аргументы. Не нужно заключать в скобки аргументы методов, которые не возвращают никаких значений. Эти рекомендации подходят как для позиционных, так и для именованных аргументов.
В примере ниже возвращаемое значение функции MsgBox представляет собой число, обозначающее выбранную кнопку, которая хранится в переменной . Так как используется возвращаемое значение, скобки обязательны. Значение переменной отображается в другом окне сообщения.
Примеры чтения и записи в файл
Пример 1
Открытие (или создание, если он не существует) текстового файла для чтения и записи и запись в него одной строки, состоящей из двух текстовых и одного числового значений. Файл с именем myFile1.txt будет создан в той же папке, где расположен файл Excel с кодом VBA.
1 |
SubTest1() Dimff AsInteger,ws AsObject ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Открываем (или создаем) файл для чтения и записи Open ThisWorkbook.Path&»\myFile1.txt»ForOutput Asff ‘Записываем в файл одну строку Write#ff,»Дает корова молоко!»,_ «Куда идет король?»,25.35847 ‘Закрываем файл Close ff ‘Открываем файл для просмотра Setws=CreateObject(«WScript.Shell») ws.Run ThisWorkbook.Path&»\myFile1.txt» Setws=Nothing EndSub |
Строки и число можно предварительно присвоить переменным, объявленным с соответствующими типами данных, и использовать их для записи данных в файл (в строках кода с оператором Write #, как в этом и следующем примерах).
Пример 2
Открытие (или создание, если он не существует) файла без расширения для чтения и записи и запись в него трех строк: двух текстовых и одной в числовом формате. Файл с именем myFile2 будет создан в той же папке, где расположен файл Excel с кодом VBA.
Так как у файла нет расширения, Windows выведет диалоговое окно для выбора открывающей его программы. Выберите любой текстовый редактор или интернет-браузер.
1 |
SubTest2() Dimff AsInteger,ws AsObject ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Открываем (или создаем) файл для чтения и записи Open ThisWorkbook.Path&»\myFile2″ForOutput Asff ‘Записываем в файл три строки Write#ff,»Дает корова молоко!» Write#ff,»Куда идет король?» Write#ff,25.35847 ‘Закрываем файл Close ff ‘Открываем файл для просмотра Setws=CreateObject(«WScript.Shell») ws.Run ThisWorkbook.Path&»\myFile2″ Setws=Nothing EndSub |
Пример 3
Считываем строку, разделенную на отдельные элементы, из файла myFile1.txt и записываем в три переменные, по типу данных соответствующие элементам.
1 |
SubTest3() Dimff AsInteger,str1 AsString,_ str2 AsString,num1 AsSingle ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Открываем файл myFile1.txt для чтения Open ThisWorkbook.Path&»\myFile1.txt»ForInput Asff ‘Считываем строку из файла и записываем в переменные Input#ff,str1,str2,num1 Close ff ‘Смотрим, что записалось в переменные MsgBox»str1 = «&str1&vbNewLine_ &»str2 = «&str2&vbNewLine_ &»num1 = «&num1 EndSub |
Попробуйте заменить в этом примере строку сначала на строку , затем на строку , чтобы наглядно увидеть разницу между операторами Input # и Line Input #.
В следующих примерах (4 и 5) замена оператора Input # на Line Input # не приведет ни к каким изменениям, так как данные в строках файла myFile2 не разделены на элементы (поля).
Пример 4
Считываем поочередно три строки из файла myFile2 и записываем в три элемента массива, объявленного как Variant, так как в этот файл ранее были записаны две строки с текстом и одна с числом.
1 |
SubTest4() Dimff AsInteger,a(2)AsVariant,iAsByte ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Открываем файл myFile2 для чтения Open ThisWorkbook.Path&»\myFile2″ForInput Asff ‘Считываем строки из файла и записываем в элементы массива Fori=To2 Input#ff,a(i) Next Close ff ‘Смотрим, что записалось в элементы массива MsgBox»a(0) = «&a()&vbNewLine_ &»a(1) = «&a(1)&vbNewLine_ &»a(2) = «&a(2) EndSub |
Пример 5
Считываем с помощью цикла Do While… Loop все строки из файла myFile2 и записываем построчно в переменную, объявленную как String (число из третьей строки запишется как текст). Для остановки цикла при достижении конца файла используем функцию EOF.
1 |
SubTest5() Dimff AsInteger,aAsVariant,bAsString ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Открываем файл myFile2 для чтения Open ThisWorkbook.Path&»\myFile2″ForInput Asff ‘Считываем строки из файла и записываем в элементы массива DoWhileNotEOF(ff) Input#ff,a b=b&a&vbNewLine Loop Close ff ‘Смотрим, что записалось в переменную MsgBoxb EndSub |
Смотрите, как создавать и открывать текстовые файлы с помощью методов CreateTextFile и OpenTextFile. Чтение файла, запись и добавление информации с помощью объекта TextStream.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
Кнопка – элемент управления формы
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы управления формы».
- Кликните в любом месте на рабочем листе Excel.
- Откроется окно «Назначить макрос объекту». Нажмите «Отмена», так как макрос для этой кнопки еще не готов.
- После нажатия кнопки «Отмена», на рабочем листе появится новая кнопка из коллекции «Элементы управления формы» в режиме редактирования.
Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.
Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.
Чтобы вернуться в режим редактирования кнопки, кликните по ней правой кнопкой мыши и выберите из контекстного меню нужный пункт. Если вы хотите изменить размер или размещение кнопки перетаскиванием, кликните левой кнопкой мыши в любом месте рабочего листа. После первого клика контекстное меню закроется, а кнопка останется в режиме редактирования.
Создание процедуры для кнопки
Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.
Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.
Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».
В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».
Вставьте внутрь шаблона процедуры следующий код:
1 |
‘Записываем в ячейку A1 число 44 Cells(1,1)=44 ‘Записываем в ячейку B1 число 56 Cells(1,2)=56 ‘Записываем в ячейку C1 формулу, которая Cells(1,3)=»=A1+B1″ |
На этом процедура (подпрограмма, макрос) для кнопки готова.
Назначение макроса кнопке
Кликните правой кнопкой мыши по кнопке на рабочем листе и в контекстном меню выберите строку «Назначить макрос…», откроется окно «Назначить макрос объекту».
Выберите в списке процедуру «NovayaProtsedura» и нажмите «OK». Кликните левой кнопкой мыши по рабочему листу, чтобы командная кнопка вышла из режима редактирования.
Теперь можете нажать созданную кнопку из коллекции «Элементы управления формы» для проверки ее работоспособности.
Добавление элементов управления
Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:
При наведении курсора на элементы управления появляются подсказки.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.
Кликнув по элементу управления на форме, вы можете изменять его размер, перетягивая границы за белые квадратики, и перетаскивать по форме, ухватив за одну из границ. Кликнув по заголовку формы или по ее рабочему полю, вы можете также изменять ее размер, перетягивая границы за белые квадратики.
Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».
Совет 1: Как в Excel создать программу
Во вторых у Вас на компьютере должна быть установлена специальная программа, которая скомпилирует написанный Вами код. В-третьих, Вам необходимо будет разработать и записать на бумаге алгоритм Вашей программы, чтобы перед глазами всегда была чёткая цель того, к чему мы идём (по крайней мере, я так всегда делаю, когда пишу более сложные программы).
Язык программирования подойдет любой, но при работе в Excel и написания программ под него я рекомендую использовать Visual Basic for Application (VBA), так как в Excel уже встроена специальный редактор для создания программ в Excel.
Язык программирования мы с Вами, думаю, легко освоим, мне удалось, и у Вас также получится. Поверьте, в Excel программировать намного проще, чем на каком-нибудь C++ или java
Потому что он создан для всех, неважно кто Вы инженер или бухгалтер, VBA создавался для людей, которые пользуются Excel. И если Вы освоили Excel, то следующим логическим шагом будет освоение VBA
Покажу на примере, как создаётся программа на VBA.
Никакого алгоритма не придумываем, вместо него запишем такую фразу «’Нащ код».
1. Запускаем Excel.
2. Выполняем блиц-команду (зажимаем две клавиши) «Alt» и «F11».
3. Создаём шаблон и сохраняем его.
4. После чего записываем три строчки, при этом строчка, которая начинается с апострофа, является комментарием. Слово «Sub» указывает на начало программы, «program()» — название программы, которое можно изменить, например на «Макрос()».
Словосочетание «End Sub», говорит о том, что здесь программа заканчивается.Вместо строчки «’Наш код» можно записать в будущем наш алгоритм.
Программирование в Excel не такое сложно, как может показаться, необходимо иметь чёткий, записанный желательно на бумаге алгоритм, разрабатывать которые мы вскоре научимся, и некоторые основы VBA (ввод и вывод данных в программу, условия и циклы), для начала этого вполне будет достаточно.
Введение в программирование в Excel
Открываем редактор кода
Как правильно запустить макрос
Немного о программировании
Пока выполняется условие — цикл While
Цикл While. Продолжение
Ещё один цикл For
Как проверить условие — if … then
Ключевые конструкции языка If, Else, ElseIf, Case
Пишем функцию для макроса
Microsoft Excel
Microsoft Excel — одна из самых популярных программ для работы с большим количеством данных, которая по своей сути является редактором электронных таблиц. Широкий функционал приложения не ограничивает пользователя возможностью лишь редактировать уже созданные таблицы, а позволяет создавать абсолютно новые, с внесением собственных данных.
Множество встроенных в Excel математических, статистических и прочих функций позволяют сформировать отчеты и проводить даже самые сложные вычисления в один клик, а широкая библиотека шаблонов и мастер построения диаграмм с легкостью представят всю информацию в графическом виде, с акцентированием и выделением необходимых связей и тенденций. Именно поэтому, если вам часто приходится иметь дело с большими объемами информации, проводить расчеты, составлять отчеты и осуществлять прочую подобную работу, вы можете прямо сейчас скачать Microsoft Excel бесплатно и на собственном опыте убедиться во всех преимуществах работы с данным программным продуктом.
Широкий и разнообразный инструментарий делает Excel незаменимым для людей, работающих в сфере экономики, финансов и учета.
Возможности Microsoft Excel
- Составление таблиц с различными типами данных (числовые, текстовые, дата, денежные, время и т.д).
- Широкие возможности форматирования как всего листа, так и каждой ячейки отдельно.
- Импорт и экспорт данных среди других приложений Microsoft Office.
- Автоматическая и настраиваемая сортировка информации по различным критериям.
- Встроенный поиск данных.
- Использование графических объектов, включая диаграммы, графики и гистограммы всех видов.
- Высокая степень защиты информации.
- Совместная работа над проектами.
Одним из важнейших преимуществ Microsoft Excel является то, что каждый пользователь может скачать бесплатную версию программы и самостоятельно оценить все её достоинства. Стоит отметить тот факт, что каждый новый выпуск Excel содержит в себе обновления как внешнего вида, так и функционального наполнения. Именно поэтому, прежде чем вы решите установить определенную версию на свой компьютер, обязательно ознакомьтесь с системными требованиями, которые представлены в описании каждого выпуска.
Для начала давайте напишем какую-нибудь совсем отвлеченную программку в макросах, используя автоматическую запись.
Предположим. нам необходимо в одной из ячеек первого листа написать предложение «Это первый лист», на втором листе — «Это уже второй лист» и на третьем — «А это третий лист». Затем, вернувшись на первый, снова написать:»Все! Работа сделана!»
Для этого, запустив Excel, выберите режим работы с подключенными макросами, щелкните правой кнопкой мыши по кнопке СЕРВИС и установите галочку напротив надписи Visual Basic. У вас должно получиться что-то похожее на нижний рисунок. Сохраните свою работу под именем, скажем, s1 или задача 1.
Многие считают, что сохранять файл нужно в конце работы, я же советую вам это делать в самом начале и в дальнейшем сохранять через каждые 5-10 минут, а еще лучше включить режим автосохранения. Почему? Подумайте сами.
Далее. На панели VB найдите синий кружок и наведите курсор мыши на него. Если сделаете все правильно, то у вас должна появиться надпись-подсказка «Записать макрос». Жмите левую кнопку мыши, при этом появится окно с именнем «Запись макроса». Пока ничего менять не будем, а сразу нажмем кнопку ОК, что повлечет за собой закрытие данного окна, но вместе с тем откроется новое и, кроме того, на панели VB кнопка с синим кружком превратится в кнопку с синим квадратом, с помощью которого мы сможем остановить запись макросов. А с этого момента практически любое наше действие будет записываться, поэтому не спешите и не совершайте необдуманных действий, так как потом будет трудно разобраться в созданном макросе. Итак, вы нажали ОК, и у вас получилась примерно следующая картина:
Выделив произвольную ячейку, вводим наш первый текст, по завершению ввода нажмем клавишу ENTER. Далее внизу рабочего листа ищем ярлычки с надписью Лист1, Лист2 и Лист3. Шелкнем левой кнопкой мышы по ярлычку с надписью Лист2. Снова произведем ввод текста согласно поставленной нами выше задачи. Это же самое сделаем на третьем листе. Затем, вернувшись на первый, в ячейке, расположенной ниже записи, наберем: «Все! Работа сделана! «и, нажав ENTER, щелкаем по синему прямоугольнику для остановки записи. Остается только запрограммировать работу макроса на какое-либо действие пользователя.
Давайте для начала научимся создавать и программировать кнопку.
продолжение
Самоучитель по Excel VBA
один запуск цикла) на величину шага); сочетания клавиш «Ctrl+hh»). иконку рядом с обусловлены тем, чтоИ последнее, напишите по начал слышать такуюMsgBox: MsgBox – это столбцам. Расположите данныеТекстовые функции: Excel предлагает Печать сетки и Вы запускаете Excel, Excel на простых путем записи, как Например, «Օтчет».
ним относятся Array,End Sub.LoopВ результате происходит действие, иконкой Excel; код программы VBA свофй адресс, вышлюпрограммированию в Excel связку «программирование в диалоговое окно в по убыванию или огромное количество функций заголовков строк/столбцов, Область автоматически создаётся пустая примерах показано в самомДля написания программы автоматического IsArray; LBound; UBound.Если все сделано правильно,End Sub. которое было осуществленовыбирают команду Mudule; обращается к функциональным большой (14,9 МБ) VBA для начинающих, экселе», вот и
- VBA, при помощи
- по возрастанию.Примеры: Сортировка для самых различных
- печати.
- рабочая книга.. Здесь Вы найдёте
- начале статьи, или
- заполнения шаблона, необходимо
- Функции VBA Excel для в том числе
- В результате запуска данного в процессе записи
- сохраняют, нажав на иконку возможностям, которые присутствуют
- видеоурок по созданию
- некоторые у меня
хотелось узнать, является которого можно показывать по цвету, Обратный операций с текстовыми
Обмен данными и общийПримеры: Сохраняем в формате ответы на самые через написание кода
выбрать обозначения. Они
office-guru.ru>
Примеры циклов For… Next
Вы можете скопировать примеры циклов в свой модуль VBA, последовательно запускать их на выполнение и смотреть результаты.
Простейший цикл
Заполняем десять первых ячеек первого столбца активного листа Excel цифрами от 1 до 10:
1 |
Subtest1() DimiAsLong Fori=1To10 Cells(i,1)=i Next EndSub |
Простейший цикл с шагом
В предыдущий цикл добавлен оператор Step со значением 3, а результаты записываем во второй столбец:
1 |
Subtest2() DimiAsLong Fori=1To10Step3 Cells(i,2)=i Next EndSub |
Цикл с отрицательными аргументами
Этот цикл заполняет десять первых ячеек третьего столбца в обратной последовательности:
1 |
Subtest3() DimiAsLong Fori=To-9Step-1 Cells(i+10,3)=i+10 Next EndSub |
Увеличиваем размер шага до -3 и записываем результаты в четвертый столбец активного листа Excel:
1 |
Subtest4() DimiAsLong Fori=To-9Step-3 Cells(i+10,4)=i+10 Next EndSub |
Вложенный цикл
Внешний цикл последовательно задает индексы первых десяти строк активного листа, а вложенный цикл складывает числа в первых четырех ячейках строки с текущем индексом и записывает сумму в ячейку пятого столбца. Перед запуском вложенного цикла с накопительным сложением, пятую ячейку соответствующей строки обнуляем, чтобы в случае нахождения в ней какого-либо числа, оно не прибавилось к итоговой сумме.
1 |
Subtest5() Dimi1 AsLong,i2 AsLong Fori1=1To10 ‘Пятой ячейке в строке i1 присваиваем 0 Cells(i1,5)= Fori2=1To4 Cells(i1,5)=Cells(i1,5)+Cells(i1,i2) Next Next EndSub |
Выход из цикла
В шестой столбец активного листа запишем названия десяти животных, конечно же, с помощью цикла For… Next:
1 |
Subtest6() DimiAsLong Fori=1To10 Cells(i,6)=Choose(i,»Медведь»,»Слон»,»Жираф»,»Антилопа»,_ «Крокодил»,»Зебра»,»Тигр»,»Ящерица»,»Лев»,»Бегемот») Next EndSub |
Следующий цикл будет искать в шестом столбце крокодила, который съел галоши. В ячейку седьмого столбца цикл, пока не встретит крокодила, будет записывать строку «Здесь был цикл», а когда обнаружит крокодила, запишет «Он съел галоши» и прекратит работу, выполнив команду Exit For. Это будет видно по ячейкам рядом с названиями животных ниже крокодила, в которых не будет текста «Здесь был цикл».
1 |
Subtest7() DimiAsLong Fori=1To10 IfCells(i,6)=»Крокодил»Then Cells(i,7)=»Он съел галоши» ExitFor Else Cells(i,7)=»Здесь был цикл» EndIf Next EndSub |
Результат работы циклов For… Next из примеров:
Результат работы циклов For… Next
Такие данные на активном листе Excel вы получите, если последовательно запустите на выполнениев редакторе VBA все семь подпрограмм из примеров, демонстрирующих работу циклов For… Next.
Цикл с дробными аргументами
Атрибуты start, end и step могут быть представлены числом, переменной или числовым выражением:
1 |
Fori=1To20Step2 Fori=aTobStepc Fori=a-3To2b+1Stepc2 |
В результате вычисления значения переменной вне цикла или выражения внутри его может получиться дробный результат. VBA Excel округлит его до целого числа, используя бухгалтерское округление:
1 |
‘Значения атрибутов до округления Fori=1.5To10.5Step2.51 ‘Округленные значения атрибутов Fori=2To10Step3 |
Старайтесь не допускать попадания в тело цикла For… Next неокругленных значений аргументов, чтобы не получить непредсказуемые результаты его выполнения. Если без дробных чисел не обойтись, а необходимо использовать обычное округление, применяйте в коде VBA функцию рабочего листа WorksheetFunction.Round для округления числа перед использованием его в цикле For… Next.

Эта тема закрыта для публикации ответов.