Перебирая переменный диапазон - PullRequest
0 голосов
/ 24 апреля 2019

Я довольно новичок в написании сценариев Excel VBA, но я пытаюсь создать сценарий, который усекает посещаемость события в зависимости от времени его начала и окончания.Прямо сейчас у меня есть лист, который показывает посещаемость для события, разделенного на все вовлеченные комнаты, но посещаемость, как показывали, для 24 часов дня.Поэтому я создаю цикл «Делай пока», который устанавливает нулевое значение посещаемости для времен, выходящих за пределы времени начала и окончания, и заполняет таблицу номерами посещаемости в течение этого времени.

Проблема заключается в том, чтоУ меня проблемы с перемещением через ряд событий.Это таблица, которую я пытаюсь заполнить для справки.

Date    Useage  Event Time  Meeting Room 1  Meeting Room 2  Meeting Room 3
01-01-18    3   12:00 AM                                        
01-01-18    3   01:00 AM                                        
01-01-18    3   02:00 AM                                        
01-01-18    3   03:00 AM                                        
01-01-18    3   04:00 AM                                        
01-01-18    3   05:00 AM                                        
01-01-18    3   06:00 AM                                        
01-01-18    3   07:00 AM                                        
01-01-18    3   08:00 AM                                        
01-01-18    3   09:00 AM                                        
01-01-18    3   10:00 AM                                        
01-01-18    3   11:00 AM                                        
01-01-18    3   12:00 PM                                        
01-01-18    3   01:00 PM                                        
01-01-18    3   02:00 PM                                        
01-01-18    3   03:00 PM                                        
01-01-18    3   04:00 PM                                        
01-01-18    3   05:00 PM                                        
01-01-18    3   06:00 PM                                        
01-01-18    3   07:00 PM                                        
01-01-18    3   08:00 PM                                        
01-01-18    3   09:00 PM                                        
01-01-18    3   10:00 PM                                        
01-01-18    3   11:00 PM                                        
01-02-18    3   12:00 AM                                        
01-02-18    3   01:00 AM                                        
Dim x As Double
Dim y As Double

Dim startTime As Double
Dim eventTime As Range

x = 0
y = 0

startTime = ActiveWorkbook.Sheets("Attendance").Range("H3")
Set eventTime = ActiveWorkbook.Sheets("Time Occupancy Analysis").Range("C2")

            Do While (startTime >= eventTime) And y <= 24
                Do While (startTime >= eventTime) And x <= 36
                    eventTime.Offset(0, x + 1) = 0
                    x = x + 1
                    Loop
                x = 0
                Sheets("Time Occupancy Analysis").Range("D2").Offset(y + 1, 0) = 0
                y = y + 1
                eventTime = eventTime + 0.04167 'This is where the problem exists'
                Loop

Я надеюсь, что код выдаст 0 для посещаемости, пока startTime для события не будет равно eventTime.Когда он запускается, он меняет eventTime вместо перемещения по диапазону времени события (12:00, 1:00, 2:00 и т. Д.)

...