Возникла проблема с зацикливанием дат финансового года в Excel VBA.
Моя цель: скрыть столбцы с датами, превышающими текущую дату.
Моя проблема: столбцы упорядочены по финансовому году (у меня на 6 месяцев больше календарного года). Поэтому приведенный ниже код не работает так, как я хочу.
Sub Hide_Date_Columns()
Dim c As Range
For Each c In Range("F2:AC2").Cells
If c.Value > Date Then
Columns(c.column).EntireColumn.Hidden = True
End If
Next c
End Sub
Я пытаюсь решить эту проблему за кулисами, добавив x = DateAdd ("гггг", 1, (диапазон («R2: W2 "). Значение)) для моего l oop, но я получаю несоответствие типов.
Sub Hide_Date_Columns()
Dim a As Range
Dim b As Variant
Dim c As Range
Dim DateArray() As Variant
Dim x() As Variant
Dim i As Variant
x = DateAdd("yyyy", 1, (Range("R2:W2").Value))
b = Range("R2:W2")
For Each a In Range("F2:Q2").Cells
If a.Value > Date Then
Columns(a.Column).EntireColumn.Hidden = True
End If
Next a
For Each b In x
If b.Value > x Then
Columns(b.Column).EntireColumn.Hidden = True
End If
Next b
For Each c In Range("R2:AC2").Cells
If c.Value > Date Then
Columns(c.Column).EntireColumn.Hidden = True
End If
Next c
End Sub
Любая помощь будет принята с благодарностью.