У меня есть Master.xlsx.У меня есть две переменные startd и endd - которые определяют диапазон дат, который я должен хранить в своем словаре.
У меня также есть список праздников в отдельной рабочей таблицекоторый я пытаюсь убрать из диктата.
Set hld = Sheet2.Range("A2:A7")
....
....
Dim WDdict As New Scripting.dictionary
For n = startd To endd: WDdict(n) = 1: Next
For Each hd In hld
If hd > 0 Then hd = DateValue(hd): If WDdict.Exists(hd) Then WDdict.Remove (hd)
Next
«База» - это название одного из рабочих листов.На этом «базовом» листе есть два ключевых столбца - электронная почта и дата присоединения (DOJ)
EmlsrcA = Application.Transpose(src.Sheets("Base").Range("A2:A" & rowsn))
DojsrcA = Application.Transpose(src.Sheets("Base").Range("G2:G" & rowsn))
Что я хочу сделать
Если значение DOJ для каждой строкипосле / позже, чем startd (входной параметр), тогда я хочу удалить каждую дату между startd и DOJ из словаря.
Итак, я попробовал что-то вроде этого
For Each emls In EmlsrcA 'each line in email in base page
Dim WDdictrs As New Scripting.dictionary
For Each elm In WDdict: WDdictrs(elm) = 1: Next
remove dates before doj
dj = 0
If DojsrcA(dj) > startd Then
dj = dj + 1
For n = startd To DojsrcA(dj):
If WDdictrs.Exists(n) Then WDdictrs.Remove (n) Else WDdictrs(n) = 1
Next
End If
Выдаетошибка выхода за пределы допустимого диапазона в «If DojsrcA (dj)> startd Then».Что я делаю не так?