#excel #vba
#excel #vba
Вопрос:
Я работаю над разработкой пользовательской функции, которая поможет собрать более подробную информацию из набора данных. У меня есть excel, распознающий, что функция существует, она позволяет мне вводить мои параметры, но она дает мне ЗНАЧЕНИЕ #! ошибка.
Я подозреваю, что это может быть связано с некоторыми массивами и тем, как я пытаюсь собрать данные для отображения.
У меня есть 2 таблицы: основная таблица данных и таблица вызовов, которая содержит дополнительные данные, которые я пытаюсь собрать.
Я смотрю, сколько «слотов» занимает каждый элемент, в зависимости от времени его запуска и продолжительности. Я попытался использовать цикл Do Until, чтобы заполнить массив «слотами», которые занимает элемент, и затем отобразить этот список в выходной ячейке функции. Не стесняйтесь игнорировать мои комментарии.
Function SlotsOccupied(Duration, StartTime, Day)
Dim SlotsUsed() As String
ReDim SlotsUsed(0 To Duration) 'sets SlotsUsed array size
Dim StartT(0 To 1) 'sets Array StartT
Dim StarTarr As Variant
Dim DurCount as Integer
Dim SlotCount as Integer
Dim StartTCount as Integer
'Sets Counts and starting variables
DurCount = 0
SlotCount = 0
StartTCount = StartTime
StartT(0) = Day 'sets StartT array values
StartT(1) = StartTime
Do Until DurCount = Duration
StartTarr = Join(StartT, ",")
Slot = Application.WorksheetFunction.VLookup(StarTarr, Slots.Range("a2:b56"), 2, False)
SlotsUsed(SlotCount) = Slot
DurCount = DurCount 1
StartTCount = StarTCount 1
SlotCount = SlotCount 1
Loop
SlotsOccupied = Join(SlotsUsed, ",")
Любая помощь была бы весьма признательна, я довольно долго не занимался кодированием, и я чувствую ржавчину в своем мозгу.
Заранее спасибо.
Ответ №1:
Вы никогда не затемняете свои переменные durcount, slotcount или starttcount.
Комментарии:
1. Спасибо за это! Я чувствую себя дураком из-за того, что не сделал этого изначально. Я исправил это сейчас, но все еще получаю ошибку значения. Остальная часть кода выглядит нормально?
2. Пожалуйста, обновите свой исходный пост, чтобы включить обновленный код. А вы пробовали вручную перебирать свой код? Это может помочь вам в отладке.