Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2010, 12:05   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию условие на равенство дат

Здравствуйте.
Подскажите, правильно ли составлено условие на равенство дат? Если правильно, то почему выходит ошибка на данную строку?
Код:
 If CDate(Sheets("Отчет").Cells(i, 1).Value) = CDate(.TextBox_Дата.Value) Then
segail вне форума Ответить с цитированием
Старый 29.08.2010, 12:09   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

что за ошибка и точка перед TextBox_Дата.Value к чему относится?
аналитика вне форума Ответить с цитированием
Старый 29.08.2010, 12:12   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Что в .TextBox_Дата.Value? Точка нужна ли и можно ли это значение преобразовать в дату?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.08.2010, 12:14   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от segail Посмотреть сообщение
Здравствуйте.
Подскажите, правильно ли составлено условие на равенство дат? Если правильно, то почему выходит ошибка на данную строку?
Код:
 If CDate(Sheets("Отчет").Cells(i, 1).Value) = CDate(.TextBox_Дата.Value) Then
либо уберите точку, либо выложите весь код, а так условие правильное
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 29.08.2010, 12:15   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Цитата:
Сообщение от аналитика Посмотреть сообщение
что за ошибка и точка перед TextBox_Дата.Value к чему относится?
Ошибка в смысле код не выполняется данная строка кода желтая…
Код:
Public Sub dt_dt()
Dim i As Integer
For i = 1 To 444
    With Form_SelectDate
        'Опреатор
            If CDate(Sheets("Отчет").[a6].Value) <> CDate(.TextBox_Дата.Value) Then
                If CDate(Sheets("Отчет").Cells(i, 1).Value) = CDate(.TextBox_Дата.Value) Then
                    'Опреатор
                End If
                    'Опреатор
            Else
                'Опреатор
            End If
                'Опреатор
    End With
Next
End Sub
segail вне форума Ответить с цитированием
Старый 29.08.2010, 12:21   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от segail Посмотреть сообщение
Ошибка в смысле код не выполняется данная строка кода желтая…
Код:
Public Sub dt_dt()
Dim i As Integer
For i = 1 To 444
    With Form_SelectDate
        'Опреатор
            If CDate(Sheets("Отчет").[a6].Value) <> CDate(.TextBox_Дата.Value) Then
                If CDate(Sheets("Отчет").Cells(i, 1).Value) = CDate(.TextBox_Дата.Value) Then
                    'Опреатор
                End If
                    'Опреатор
            Else
                'Опреатор
            End If
                'Опреатор
    End With
Next
End Sub
может ошибка в веденном значении textbox?

попробуйте проверить msgbox IsDate(CDate(.TextBox_Дата.Value))
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 29.08.2010 в 12:26.
R Dmitry вне форума Ответить с цитированием
Старый 29.08.2010, 12:22   #7
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Что в .TextBox_Дата.Value? Точка нужна ли и можно ли это значение преобразовать в дату?
В Cells(i, 1) дата. В TextBox_Дата дата. Формат дат dd.mm.yyyy
segail вне форума Ответить с цитированием
Старый 29.08.2010, 12:30   #8
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Может потому что дата в TextBox_Дата формируется при Initialize формы Form_SelectDate, а условие опережает событие?
segail вне форума Ответить с цитированием
Старый 29.08.2010, 12:36   #9
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от segail Посмотреть сообщение
В Cells(i, 1) дата. В TextBox_Дата дата. Формат дат dd.mm.yyyy
а так попробуйте

Public Sub dt_dt()
Dim i As Integer
For i = 1 To 444
Dim dt, dt1 As Date

With Form_SelectDate
'Опреатор
dt = Sheets("Отчет").[a6].Value
dt1 = CDate(.TextBox_Дата.Value)
If dt <> dt1 Then
If dt = dt1 Then
'Опреатор
End If
'Опреатор
Else
'Опреатор
End If
'Опреатор
End With
Next
End Sub



а еще лучше приложили бы свою проблему в файле
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 29.08.2010 в 12:50.
R Dmitry вне форума Ответить с цитированием
Старый 29.08.2010, 13:49   #10
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Excel 2007 двоичный формат.
Ошибку выдает на строку dt2 = CDate(Sheets("Отчет").Cells(i, 1).Value) кода Public Sub dt_dt() модуля Date_and_Time.
Данная строка и код закомментированы.
Код:
'...
'dt2 = CDate(Sheets("Отчет").Cells(i, 1).Value)
    If dt <> dt1 Then
    'If dt = dt2 Then
    '    .TextBox3.Value = Sheets("Отчет").Cells(i, 24).Value
    '    .TextBox3.Value = Sheets("Отчет").Cells(i, 25).Value
    '    If .TextBox3.Value = "" Then .ComboBox2.Value = "" Else _
    '    .ComboBox2.Value = Sheets("Отчет").Cells(i, 20).Value
    'End If
'...
Вложения
Тип файла: rar V_ГСМ.rar (136.2 Кб, 17 просмотров)
segail вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. в зависимости от проверки элемента на равенство должен выводится правильный ответ phantom4eg Помощь студентам 9 24.05.2010 22:41
Моя БД нарушает гендерное равенство. kapitel_bc@ukr.net Microsoft Office Access 9 08.03.2010 13:52
Равенство трех переменных k1r1ch Общие вопросы C/C++ 3 23.02.2010 20:54
Равенство по цвету snakezx Microsoft Office Excel 1 30.03.2009 12:11
Проверить равенство числа открывающих и закрывающих круглых скобок 010 Паскаль, Turbo Pascal, PascalABC.NET 6 18.05.2008 00:27