#excel #vba
#excel #vba
Вопрос:
У нас есть еженедельная функция, в которой нам нужно убедиться, что включенные данные содержат только значения со дня создания отчета до следующего воскресенья. Я знаю, что проблема, с которой я сталкиваюсь, заключается в том, что мое EndDate
значение не может быть отформатировано yyyy-mm-dd
, но я не знаю, как двигаться дальше. Это то, что у меня есть:
' set value for 'EndDate'
Dim EndDate As Date
EndDate = DateAdd("d", -Weekday(Now) 8, Now)
' reformat 'Required End' column to "yyyy-mm-dd"
ActiveSheet.Range("F2", "F50000").NumberFormat = "yyyy-mm-dd"
' filter results from StartDate to EndDate
ActiveSheet.ListObjects(1).Range.AutoFilter Field:=6, _
Criteria1:=">=" amp; Format(Date, "yyyy-mm-dd"), _
Operator:=xlAnd, _
Criteria2:="<=" amp; Format(EndDate, "yyyy-mm-dd")
Я получаю сообщение об ошибке:
Run time error '9': Subscript out of range
Комментарии:
1. Вероятно, у вас нет таблицы (listobject) на активном листе.
2.
EndDate
значение не может быть отформатированоyyyy-mm-dd
, что не приведет к ошибке, о которой вы сообщаете. Кроме того, используйтеCDbl(your_date)
для различных сравнений вместо форматированной строки.