Страница 1 из 1 |
Автор | Сообщение |
---|---|
|
0
Доброго времени суток.
Возникла такая проблемка - в эксель файле есть столбец с конкретной датой (в сводной таблице), надо сделать так, чтобы юзер ввел какой-то диапазон, и эксель показал только те даты, которые в этот диапазон попадают. Думал делать с помощью макроса и расширенного фильтра.
Если делать ручками - все прекрасно работает, но юзеры озвереют от таких манипуляций, а макрос почему-то не работает. Перелопатил гугл - пишут, что макрос (VBA то бишь) будет корректно работать, только если в системе установлен регион США, и дата отображается как в США (мм.дд.гг.).
Возникла идея из экслея запускать .bat файл, который бы менял системный формат даты. Но я ни в зуб ногой, какой в файле должен быть код, а гугл не помог.
Буду очень благодарен, если кто-нибудь поможет с кодом или своим вариантом фильтровки по диапазону дат Спасибо!
З.Ы. Если это принципиально, могу отблагодарить рублем - скиньте кошелек в лс =) |
23 янв 2014, 07:21 |
|
|
0
If DateValue(Cells(n, 1).Value) > DateValue(data1) And DateValue(Cells(n, 1).Value) < DateValue(data2) Then
где data1 и data2 диапазон который ты задаешь в коде Cells(n, 1).Value клетка в которой юзеры пишут дату в привычном для советского человека виде 23.01.2014 P.S. могут возникнуть проблемы если юзеры пишут дату через запятую 23,01,2014 ну и т.д. сам разберешься |
23 янв 2014, 10:03 |
|
|
0
Можешь пользоваться макросом с автофильтром, если перекинешь дату в переменную типа long (http://www.ozgrid.com/VBA/autofilter-vba-dates.htm).
Dim longDate1 As Long longDate1 = Date1 ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1:=">=" & longDate1, Operator:=xlAnd, Criteria2:="<=" & longDate2
Где Date1 и Date2 начальная и конечная даты соответственно. |
23 янв 2014, 10:32 |
|
|
0
Спасибо большое, буду пробовать! =) |
23 янв 2014, 11:36 |
|
Страница 1 из 1 |