Всем доброго дня! В столбце (D:D) имеются данные в формате даты. Н/р: 08.11.2015 В ячейке "К7" указан только месяц в формате числа. Н/р: 11 Подскажите пожалуйста как в операторе If Bz.Range("D" & i) сделать так что бы из даты брал только месяц.
[vba]
Код
Sub raschet() Dim i As Long Set Os = Worksheets("Îñíîâà") Set Bz = Worksheets("Áàçà")
For i = 1 To Bz.Range("D1").End(xlDown).Row
If Bz.Range("D" & i) = Os.Range("K7") Then MsgBox "!!!" End If Next i
End Sub
[/vba] Спасибо.
Всем доброго дня! В столбце (D:D) имеются данные в формате даты. Н/р: 08.11.2015 В ячейке "К7" указан только месяц в формате числа. Н/р: 11 Подскажите пожалуйста как в операторе If Bz.Range("D" & i) сделать так что бы из даты брал только месяц.
[vba]
Код
Sub raschet() Dim i As Long Set Os = Worksheets("Îñíîâà") Set Bz = Worksheets("Áàçà")
For i = 1 To Bz.Range("D1").End(xlDown).Row
If Bz.Range("D" & i) = Os.Range("K7") Then MsgBox "!!!" End If Next i
Так нужно? Я в своем первом посте написал просто вручную. Потом проверил - не работает. И удалил пост. А вот так работает. Только имена листов еще добавьте. [vba]
Код
If --Format(Range("D1").Value, "MM") = Range("K7").Value Then
[/vba] Еще варианты [vba]
Код
If CByte(Format(Range("D1").Value, "MM")) = Range("K7").Value Then
[/vba] [vba]
Код
If Format(Range("D1").Value, "MM") = Range("K7").Value & "" Then
[/vba]
Так нужно? Я в своем первом посте написал просто вручную. Потом проверил - не работает. И удалил пост. А вот так работает. Только имена листов еще добавьте. [vba]
Код
If --Format(Range("D1").Value, "MM") = Range("K7").Value Then
[/vba] Еще варианты [vba]
Код
If CByte(Format(Range("D1").Value, "MM")) = Range("K7").Value Then
[/vba] [vba]
Код
If Format(Range("D1").Value, "MM") = Range("K7").Value & "" Then
Спасибо за ответы. Возник вопрос - правильно ли я понял, что в записи: [vba]
Код
If --Format(Range("D1").Value, "MM") = Range("K7").Value Then
[/vba] два минуса позволяют использовать функцию? Перед тем как создать эту тему, пробовал своими силами. Нашел функцию "МЕСЯЦ". Пробовал применить так: [vba]
Код
If MONTH(Bz.Range("D" & i)) = Range("K7") Then
[/vba] начал ругаться что вроде у меня процедура "Sub" а надо в шапке делать как функцию. Спасибо.
Спасибо за ответы. Возник вопрос - правильно ли я понял, что в записи: [vba]
Код
If --Format(Range("D1").Value, "MM") = Range("K7").Value Then
[/vba] два минуса позволяют использовать функцию? Перед тем как создать эту тему, пробовал своими силами. Нашел функцию "МЕСЯЦ". Пробовал применить так: [vba]
Код
If MONTH(Bz.Range("D" & i)) = Range("K7") Then
[/vba] начал ругаться что вроде у меня процедура "Sub" а надо в шапке делать как функцию. Спасибо.Kinder
Огромное спасибо за ответ. Получается, - в VBA я могу использовать любую функцию. Единственно, нужно правильно её указать? Просто я раньше работал через макрорекодер. Там автоматом менялся стиль ячеек. И функция записывалась в кавычках. Спасибо.
Огромное спасибо за ответ. Получается, - в VBA я могу использовать любую функцию. Единственно, нужно правильно её указать? Просто я раньше работал через макрорекодер. Там автоматом менялся стиль ячеек. И функция записывалась в кавычках. Спасибо.Kinder
Кирилл, есть функции, встроенные в VBA, а есть функции Excel, записанные в VBA. Это немного разные вещи. Алгоритмы расчета и выводимые результаты в большинстве случаев совпадают, но могут быть и разными. Сравните [vba]
[/vba] Для пустой D1 первая даст 30 декабря 1899г., а вторая 0 (нулевое) января 1900г. И совпадать они начнут только с 61-го дня (1 марта 1900г.) - в Excel ошибочно есть 29/02/1900, а в VBA такой даты нет. Ну это так, в качестве примера различий. Еще пример различий - в D6 у нас " ss ss " (без кавычек) [vba]
[/vba] Функция Excel TRIM - это обычная СЖПРОБЕЛЫ. Даст нам "s s". А вот функция VBA Trim уберет только начальные и конечные пробелы и итог будет вот такой - "s s".
Кирилл, есть функции, встроенные в VBA, а есть функции Excel, записанные в VBA. Это немного разные вещи. Алгоритмы расчета и выводимые результаты в большинстве случаев совпадают, но могут быть и разными. Сравните [vba]
[/vba] Для пустой D1 первая даст 30 декабря 1899г., а вторая 0 (нулевое) января 1900г. И совпадать они начнут только с 61-го дня (1 марта 1900г.) - в Excel ошибочно есть 29/02/1900, а в VBA такой даты нет. Ну это так, в качестве примера различий. Еще пример различий - в D6 у нас " ss ss " (без кавычек) [vba]
[/vba] Функция Excel TRIM - это обычная СЖПРОБЕЛЫ. Даст нам "s s". А вот функция VBA Trim уберет только начальные и конечные пробелы и итог будет вот такой - "s s"._Boroda_