Страницы: 1
RSS
Вложенный цикл не меняет значения счетчика
 
Добрый день,

Я составляю макрос, который строит календарь электронной записи на основе уникального номера записи.
Код на скриншоте и файл ниже.

Логика действий:
1. Уникальный номер записи присваивается каждой записи и представляет собой конвертированные дату и время начала приема
2. Область Calendar - массив всех конвертированных комбинаций дат и времени в 2021 году
3. Макрос находит уникальные номера в BaseData, X и Y-координаты и заливает соответствующие ячейки в блоке Calendar
4. X и Y-координаты - соответственно число столбцов вправо и строчек вниз от начального положения уникального номера в Calendar.
То есть каждая запись - это "прямоугольник" в календаре с начальными и конечными датой и временем.

Что делает макрос:

1. Прочесывает каждую из записей в BaseData, запоминает координаты на каждой итерации
2. Находит начальную ячейку по уникальному номеру в Calendar, определяет ее координаты
3. Закрашивает прямоугольную область по одной ячейке через вложенный цикл

r - вертикальный индекс в области BaseData
x и y - координаты сдвига
sty - номер строчки, где находится уникальный номер в Calendar записи r
stx - номер столбца, где находится уникальный номер в Calendar записи r

Проблема: блоку вложенных циклов for...next "понравилась" одна конкретная запись (адрес ячейки с уникальным номером - $B$4), и он выполняет весь код до конца только для нее. Другие уникальные номера (адреса ячеек) игнорируются.
На втором скриншоте - состояния переменных на каждой итерации переменной r из отладчика. Видно, что циклы пропускают все записи, кроме последней.

Подскажите, что можно сделать?
 
Нет, проблема в том что нет файла и нет кода. Может там банально где-то раскладка попутана - option explicit ведь не применяете.
А по задаче - чую что можно написать простой короткий код используя словарь. Но в деталях задачу не вижу...
 
Цитата
Алексей Китаинов написал:
Другие уникальные номера (адреса ячеек) игнорируются.
Они не игнорируются, это вы их игнорируете. Используйте Find правильно, и все будет работать.
 
Алексей Китаинов, если уж показываекте код, то показывайте КОД, а не картинки какие-то.
А еще лучше пример прикреплять (правила форума - они и для Вас написаны)
 
Цитата
vikttur написал:
они и для Вас написаны
Ты уверен?
 
Абсолютно )
 
Добрый вечер, справедливо) Прикладываю исходный файл
 
А зачем исходный файл? Достаточо небольшого примера. Все, что не касается вопроса, отвлекает и отодвигает помощь.
 
смотрите тут
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх