Страницы: 1
RSS
Расширенный фильтр. Excel-2010. Проблема определения диапазона дат.
 
Прошу помощи. Сам - никак, крутил уже во все стороны.  
Расширенный фильтр. Есть возможность выбора записей из базы данных как по определенной дате, так и по диапазону дат.  
Файлы создавались и в 2003, и в 2010. Проверялись на нескольких 2003 и нескольких 2010. В 2003 все работает нормально. Excel-2010 отказывается понимать диапазон дат.  
В примере для сравнения есть возможность выбора по диапазону чисел. Это работает без проблем.  
Какая-нибудь мелочь, об которую споткнулся? Проблема в форматах? Пробовал разные форматы дат.
 
\не вникая CLng()
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
>    On Error Resume Next  
>    Worksheets("проба").ShowAllData  
 
Private Const SHEET1_NAME As String = "проба"  
 
If Sheets(SHEET1_NAME).FilterMode Then  
Sheets(SHEET1_NAME).ShowAllData  
End If  
 
дальше продолжать не буду )  
 
не удержался: tBoxNmbrF - крутые имена форм )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Логически понятно: если число срабатывает, то и дату нужно представить числом.  
Спасибо, сработало.  
CLng(CDate(Me.tBoxDateS.Text))  
 
Когда-то напоролся на поиск даты в Find (нужно было искать как Formula), теперь здесь непонятки.  
Кто-нибудь объяснит нехорошее поведение с датой? Почему нужно переводить тип данных? Почему старший брат принимает, младший капризничает?  
{quote}{login=nerv}{date=05.07.2012 10:36}{thema=}{post}...Private Const SHEET1_NAME As String = "проба"...{/post}{/quote}  
Еще не дошел до тонкостей. С константами лучше?  
 
А чего имена? Есть покруче :)
 
>Кто-нибудь объяснит нехорошее поведение с датой?  
excel работает с датой как с числом  
 
>С константами лучше?  
проще. Объявляешь одну на весь модуль (например) и не пишешь каждый раз Worksheets("проба"). Если имя листа нужно будет, достаточно сделать это 1 раз. Разумеется, можно воспользоваться поиском заменой в VBE, но это уже не айс.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Но ведь злостный тип - CDate - тоже число? 2003 не против...
 
а в чём собственно отличие?  
 
Debug.Print CDate("05.07.12") = Date  
Debug.Print CLng(CDate("05.07.12")) = Date  
Debug.Print CDate("05.07.12") = CLng(CDate("05.07.12"))  
 
По поводу листа: если только один макрос, тогда короче будет написать как-то так:  
Dim Sh1 As Worksheet: Set Sh1 = Sheets("проба")
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
С листом по разному.  
В одной работе лист с данными (база) один.  
В другом проекте 7 листов пользователей, каждый заходит под своим паролем и имя листа меняется. И макрос не один.
 
{quote}{login=LightZ}{date=05.07.2012 11:01}{post}а в чём собственно отличие?{/post}{/quote}  
"Апну"-подниму. Может, с утра в понедельник, головы свежие...  
Почему 2010 просит преобразовывать CDate?
 
"05.07.12" - потому, что это строка  
 
 
55888
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
???  
Сейчас поиграюсь. 2003, получается, глупее? Или наоборот - умнее?
 
msgbox cells(1) ' какой результат выполнения этой команды?
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
LightZ подсказывал, но я понял, что он тоже в недоумении :)  
Спасибо, понял. Считал, CDate - и в Африке дата. Так то оно так, но не число...  
 
Но еще не понял, почему лазутчик проходил рубежи старшего (неопытного?) брата. Буду в 2003, поиграюсь там.
Страницы: 1
Читают тему
Наверх