Страницы: 1
RSS
сравнение дат из ячеек
 
помогите ,пожалуйста:  
есть дипазон ячеек с датами, внесенными на протяжении года с помощью  
   .Cells(r, 2).Value = VBA.Format(VBA.Date, "dd.mm.yy")  
теперь требуется определить строки по месяцам, для этого присваиваю переменной значение дыты в первой строке  
 
Public relevantMonthCap As Integer  
...  
relevantMonthCap = Month(CDate(Sheets(choosedSheetForReport).Range("b" & indexRow2).Value))  
и в значении получаю бред: из ячейки с датой 01.02.12 получаю значение 12!!!  
Объясните, кто может, пожалуйста!
 
Нужно извлечь месяц?  
Sub TestMonth()  
Dim iDate As Date, iMonth As Integer  
iDate = "01.02.12"  
iMonth = Month(iDate)  
MsgBox iMonth  
End Sub
 
У меня нормально  
 
Sub io()  
   Dim M As Byte  
   With ActiveSheet.Cells(1, 1)  
       .Value = VBA.Format(VBA.Date, "dd.mm.yy")  
       M = Month(CDate(.Value))  
       MsgBox M  
   End With  
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
по описанию - имхо, всё правильно.  
но чудес не бывает.  
значит, весь фокус-покус либо в indexRow2, либо в choosedSheetForReport  
нужен файл.  
 
хотя можете и сами проверить - либо отладчиком, либо с помощью MsgBox.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
to Юрий М  
покажу, что получаю в DEBUG  
 
значит так, определили тип переменной как Date  
Public relevantMonthCap As Date  
 
приняли в переменную данные из ячейки  
relevantMonthCap = Sheets(choosedSheetForReport).Range("b" & indexRow2).Value  
DEBUG: Sheets(choosedSheetForReport).Range("b" & indexRow2).Value  "01.02.12"  
relevantMonthCap 12:00:00 AM  
ПОЧЕМУ как время?!  
 
после: relevantMonthCap = Month(relevantMonthCap)  
DEBUG: relevantMonthCap  1/11/1900  
???
 
{quote}{login=ikki}{date=10.05.2012 09:35}{thema=}{post}нужен файл.{/post}{/quote}
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
и если просто обработать month(date) все в порядке  
чудес не бывает, значит что-то в данных ячейки,  
ячейки определены как тип date  
файл огромный, да еще и с ивритом -все равно не пойдет...
 
ячейки-то, может быть, date  
но сохраняли вы в них строку. это раз.  
 
м.б. что-то с разделителем... это два.  
 
кусочек файла. пять ячеек.  
я щаз на колени встану. :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
А если удалить ненужное с файла и выложить часть кода + часть книги? Не?  
С виду у Вас всё правильно написано.  
Зачем CDate? - лишнее  
relevantMonthCap объявите как Byte  
Вводите значение в Cells(r, 2), а месяц пытаетесь вытянуть с Range("b" & indexRow2) или у Вас это одна и та же ячейка? Зачем? :)  
-11330-
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
to LightZ  
- cDate добавляла от отчаяния :( ...убрала  
- relevantMonthCap объявите как Byte  
не помогает  
- Вводите значение в Cells(r, 2), а месяц пытаетесь вытянуть с Range("b" & indexRow2) или у Вас это одна и та же ячейка? Зачем? :)  
это та же ячейка... обработка разная для разных листов...    
через форму поступают данные в разные листы: те, что часто добавляются идут в помесячные файлы для каждого и потом обрабатываются в отчете  (без затрагивания дыты (все чудненько работает..)  
один редко добавляемый вид продукции вносится в лист CUPS и теперб пришло время обработать и его в отчете и ...приехала:)  
 
to ikki  
Файл покромсала, ... вроде можно проверить  
заходите на лист CUPS REPORT  и жмите на кнопку REFRESH  
Почему он видит данные как время, а не дату???  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
уф, большой а если так  
http://www.getzilla.net/filesofuser
 
или надо так?  
http://www.getzilla.net/files/3371306/file.rar.html
 
нет оказывается так, извените  
Скачать file.rar с getzilla
 
Поглядел. Msgbox 2 видел, Msgbox 12 - нет.
 
в смысле? вам выдает месяц 2? Но у меня 12???
 
{quote}{login=RAN}{date=10.05.2012 11:44}{thema=}{post}Поглядел. Msgbox 2 видел, Msgbox 12 - нет.{/post}{/quote}  
а что Вам показывает первый MSGBOX? у меня 12:02:12 AM -то есть  как время....
 
.
 
А что в системных настройках с датой-временем?
 
Вот ведь! С english US и  English UK я пробовала поиграться, и безрезультатно... А он оказывается русский хочет!!! Бред!!!! Разве функция Month не должна одинаково обрабатывать все форматы? И что мне теперь весь завод заставить учить русский? Чушь какая-то!  
Спасибо всем за помощь огромное! Пойду думать, если придумаю -отпишусь...
 
Просто у Вас там не дата, а текст. И как его понимать - это зависит от системных настроек.  
Вы его возьмите и кодом представьте так, как Вам нужно - через Left/Mid отрежьте день/месяц/год. соберите свой формат, преобразуйте в свою дату.
 
Спасибо, Hugo. так и сделала.
Страницы: 1
Читают тему
Наверх