Друзья, день добрый! Сижу и туплю наверное уже не один час. Имеется Excel 2010, на одном из листов которого в столбце A указан список дата-время. Скопировал содержимое
Пытаюсь организовать поиск в макросе, увы и ах, не получается. Я поискал на рабочем листе поиском - нормально, записал это в макрос. Запускаю макрос - вылетает ошибка. Макрос прилагаю, я его не менял.
В чем дело, какие-то особенности моего экселя? Я пробовал конвертить в дату, брать значение из ячейки листа - не получается и все!
Раньше у меня стоял 2003 - проблем не возникало. Вообще проблема возникла именно после того, как макрос, исправно работающий в 2003 отказался по вышеуказанной причине работать в 2010.
У меня вот так не работает ? r2 24.12.2012 14:00:00
Dim sDate As String, rTempFind as Range sDate = Format(CDate(r2), "M/D/YYYY HH:MM") Set rTempFind = Sheets("Data").Range("A:A").Find(What:=sDate, LookIn:=xlFormulas, LookAt:=xlWhole, SearchFormat:=False)
rTempFind получается Nothing...На листе Data искомые дата-время есть
маски для времени H:M, HH:M, H:MM не меняют ничего
Похоже, еще зависит от того, что ячейка отображает, т.е. от формата ячейки...
если в моем случае с "5 декабря" скрыть отображение времени в ячейке, оставив только дату :05.12.2012, то "12/5/2012 5:30" уже не найдёт, а без времени "12/5/2012" - найдёт
Указание r2 также не работает. Поверьте, я перебрал все, то можно. Даже пробовал форматировать, используя формат, взятый непосредственно с листа, на котором производил поиск, то есть вот так
Set rTempFind = Sheets("Data").Range("A:A").Find(What:=Format(CDate(r2), Sheets("Data").Range("A3").NumberFormat), LookIn:=xlFormulas, LookAt:=xlWhole, SearchFormat:=False)
Вот. Сил моих уже нет Я на всякий случай на листе Data сделал 2 варианта даты-времени - как в идеале должно быть (с формулами) и рядом то же, но вставленное Специальной вставкой (Значения). Я так подозреваю, что у нас в компании наверное какие-то экзотические настройки формата даты-времени могут стоять, так как на соседнем компе с Excel 2007 то же самое. В 2003 кстати тоже не работает
Кажется, я нашел, как это сделать немного по другому. На рабочем листе составляю формулу на ячейке A3 ПОИСКПОЗ(A1;B:B). В макросе пишу :
Dim d As Date d = "18.12.2012 09:30"
Dim s As String s = Format(d, "m\/d\/yyyy hh:nn" Range("A1" .FormulaR1C1 = s
В A1 макросом пишу искомую дату, а в ячейке A3 возвращается ее позиция в столбце B, а у ж из нее я планирую вычислять объект Range ячейки. Извращение, но делать нечего.
p.s. \/ в формате даты - это не буква виктория, это два разнонаправленных слэша.