Добрый день,
Я составляю макрос, который строит календарь электронной записи на основе уникального номера записи.
Код на скриншоте и файл ниже.
Логика действий:
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 из отладчика. Видно, что циклы пропускают все записи, кроме последней.
Подскажите, что можно сделать?
Я составляю макрос, который строит календарь электронной записи на основе уникального номера записи.
Код на скриншоте и файл ниже.
Логика действий:
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 из отладчика. Видно, что циклы пропускают все записи, кроме последней.
Подскажите, что можно сделать?