Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Выбор нескольких месяцев в автофильтре, через UserForm
 
JeyCi, при наполнении массива DtF проблем не возникает, ошибка появляется, кодга Вы массив с датами используете в качестве критерия фильтра:
Код
   ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=1, Operator:= _
   xlFilterValues, Criteria2:=DtF()

Выбор нескольких месяцев в автофильтре, через UserForm
 
Есть решение! Необходимо поменять размерности массива местами.

Код
   ReDim DtF((DateDiff("d", DtMin, DtMax)), 1)
  Dt = DtMin
  i = 0
  While Dt <= DtMax
    DtF(i, 0) = 2
    DtF(i, 1) = CStr(Month(Dt)) & "/" + CStr(Day(Dt)) & "/" + CStr(Year(Dt))
    i = i + 1
    Dt = DateAdd("d", 1, Dt)
  Wend

Однако, если в фильтруемых данных не окажется какой-либо даты между DtMin и DtMax, то при фильтрации возникнет ошибка. Таким образом, массив DtF следует заполнять только имеющимися в фильтруемом списке датами. Если же необходимо отфильтровать диапазон дат, то, как рекомендует макрорекордер, следует использовать следующий код:

Код
     ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=1, Criteria1:= _
     ">=03.03.2014", Operator:=xlAnd, Criteria2:="<=01.06.2014"
Изменено: Олег - 03.06.2014 16:45:16
Выбор нескольких месяцев в автофильтре, через UserForm
 
Михаил С., Ваше замечание учту на будущее, спасибо! А по существу проблемы есть идеи?
Выбор нескольких месяцев в автофильтре, через UserForm
 
Да, макрорекордер рулит, но как програмно заполнить критерий по датам? Например, програмно определены начальная и конечная даты. Теперь надо отфильтровать этот интервал. Попробовал сделать так:
Код
  Dim DtF() As Variant
  
  ReDim DtF(1, (DateDiff("d", DtMin, DtMax)))
  Dt = DtMin
  i = 0
  While Dt <= DtMax
    DtF(0, i) = 2
    DtF(1, i) = CStr(Month(Dt)) + "/" + CStr(Day(Dt)) + "/" + CStr(Year(Dt))
    i = i + 1
    Dt = DateAdd("d", 1, Dt)
  Wend
  ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=1, Operator:= _
   xlFilterValues, Criteria2:=DtF()

Но при выполнении последней строки ругается, что метод AutoFilter завершен неверно (run-time error 1004)
Как записать значение среза сводной таблицы в ячейку на листе?
 
Есть несколько сводных таблиц, которые отражают данные за выбранный день. Плюс консолидированный отчет по всем сводным на отдельном листе. Все сводные завязаны на один срез. Пользователю удобно в одном месте ткнуть в требуемую дату, а затем лазить по листам и смотреть данные. Срез именно по тому, что таблиц несколько. А в ячейку хочу записать, чтоб при печати отчетов была видна дата, за которую они построены.
Я наивно полагал, что если есть "Имя для использования в формулах", то можно написать формулу с участием этого имени...
Альтернативу срезу пока не рассматривал и, следовательно, соответствующий поиск в сети не проводил. Если есть ссылочка под рукой - буду признателен  :)
Изменено: Олег - 12.04.2013 20:51:49
Как записать значение среза сводной таблицы в ячейку на листе?
 
Собственно, вопрос в названии темы.
В настройках среза есть название среза для использования в формулах. В моем случае Срез_Dt_Add
Пишу в ячейке формулу: =Срез_Dt_Add
Ячейка пуста... Пробую: =Срез_Dt_Add(DtAdd), =Срез_Dt_Add(Dt_Add), =Срез_Dt_Add("DtAdd" ;) , =Срез_Dt_Add[DtAdd] и так далее во всех возможных вариантах сочетания круглых, квадратных скобок, кавычек и имен - ячейка не получает значения, если не ругается либо на ошибку в формуле, либо на #ССЫЛКА
Страницы: 1
Loading...