Я довольно новичок в написании сценариев 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 и т. Д.)