Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразование даты в число и наоборот - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразование даты в число и наоборот (Макросы/Sub)
Преобразование даты в число и наоборот
Elhust Дата: Понедельник, 15.05.2017, 08:40 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
Добрый день увожаемые специалисты и просто гуру excel
Возникла такая задача у меня есть три отдельных числа:
-день в виде "2"
-месяц в виде "7"
-год в виде "2014"
и с помощью DateSerial я преобразую в дату
[vba]
Код

Dim DateExpert as String
iCell34=2014
iCell33=7
iCell32=2
DateExpert = DateSerial(iCell34, iCell33, iCell32)
MsgBox DateExpert
[/vba]
всё хорошо но вот с помощью DateValue преобразовать в число не удаётся ... это мне надо чтобы выявить минимальную дату или наименьшую дату
Благодарю за внимание


Каждый сам выбирает правила игры
 
Ответить
СообщениеДобрый день увожаемые специалисты и просто гуру excel
Возникла такая задача у меня есть три отдельных числа:
-день в виде "2"
-месяц в виде "7"
-год в виде "2014"
и с помощью DateSerial я преобразую в дату
[vba]
Код

Dim DateExpert as String
iCell34=2014
iCell33=7
iCell32=2
DateExpert = DateSerial(iCell34, iCell33, iCell32)
MsgBox DateExpert
[/vba]
всё хорошо но вот с помощью DateValue преобразовать в число не удаётся ... это мне надо чтобы выявить минимальную дату или наименьшую дату
Благодарю за внимание

Автор - Elhust
Дата добавления - 15.05.2017 в 08:40
nilem Дата: Понедельник, 15.05.2017, 09:14 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1324
Репутация: 470 ±
Замечаний: 0% ±

Excel 2013
Даты - это ведь и есть число. "выявить минимальную дату или наименьшую дату " - выявляйте как с обычными числами.
вот здесь
[vba]
Код
Dim DateExpert as String
[/vba]
нужно As Date


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеДаты - это ведь и есть число. "выявить минимальную дату или наименьшую дату " - выявляйте как с обычными числами.
вот здесь
[vba]
Код
Dim DateExpert as String
[/vba]
нужно As Date

Автор - nilem
Дата добавления - 15.05.2017 в 09:14
Elhust Дата: Понедельник, 15.05.2017, 09:30 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem,
То есть я ставлю тип данных Date и вычисляю по методу
[vba]
Код

Dim DateExpert as Date, DateExpert1 as Date
Dim Mindate as Double
iCell34=2014
iCell33=7
iCell32=2
iCell35=2013
iCell36=7
iCell37=2
DateExpert = DateSerial(iCell34, iCell33, iCell32)
DateExpert1 = DateSerial(iCell35, iCell36, iCell37)
Mindate = Application.WorksheetFunction.Min(DateExpert ,DateExpert1 )
MsgBox Mindate
[/vba]


Каждый сам выбирает правила игры

Сообщение отредактировал Elhust - Понедельник, 15.05.2017, 09:34
 
Ответить
Сообщениеnilem,
То есть я ставлю тип данных Date и вычисляю по методу
[vba]
Код

Dim DateExpert as Date, DateExpert1 as Date
Dim Mindate as Double
iCell34=2014
iCell33=7
iCell32=2
iCell35=2013
iCell36=7
iCell37=2
DateExpert = DateSerial(iCell34, iCell33, iCell32)
DateExpert1 = DateSerial(iCell35, iCell36, iCell37)
Mindate = Application.WorksheetFunction.Min(DateExpert ,DateExpert1 )
MsgBox Mindate
[/vba]

Автор - Elhust
Дата добавления - 15.05.2017 в 09:30
Elhust Дата: Понедельник, 15.05.2017, 09:33 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem, слушай а если такая загвоздка как посчитать минимальное значение если ты не в рабочей книге а в активной книге ? а то у меня цикл по книгам в папке


Каждый сам выбирает правила игры
 
Ответить
Сообщениеnilem, слушай а если такая загвоздка как посчитать минимальное значение если ты не в рабочей книге а в активной книге ? а то у меня цикл по книгам в папке

Автор - Elhust
Дата добавления - 15.05.2017 в 09:33
nilem Дата: Понедельник, 15.05.2017, 09:34 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1324
Репутация: 470 ±
Замечаний: 0% ±

Excel 2013
ну да
только Mindate as Date - это для сообщения №3 (не успеваю :)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Понедельник, 15.05.2017, 09:35
 
Ответить
Сообщениену да
только Mindate as Date - это для сообщения №3 (не успеваю :)

Автор - nilem
Дата добавления - 15.05.2017 в 09:34
Elhust Дата: Понедельник, 15.05.2017, 09:41 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem, Акей слушай но у меня и с Double выводиться ) правда преобразуется дата в вид 45452 ^_^


Каждый сам выбирает правила игры

Сообщение отредактировал Elhust - Понедельник, 15.05.2017, 09:41
 
Ответить
Сообщениеnilem, Акей слушай но у меня и с Double выводиться ) правда преобразуется дата в вид 45452 ^_^

Автор - Elhust
Дата добавления - 15.05.2017 в 09:41
nilem Дата: Понедельник, 15.05.2017, 09:43 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1324
Репутация: 470 ±
Замечаний: 0% ±

Excel 2013
"в вид 45452" - потому что дата - это число, вот Double и показывает число. А если объявить как Date, то покажет нормальную дату (вернее, число в формате даты)
Если выбирать мин дату из нескольких книг, то попробуйте как-то так
[vba]
Код
Dim DateExpert As Date
DateExpert = #5/15/2159# 'назначаем заранее какую-то большую дату

Dim dt As Date

Цикл по книгам

    dt = DateSerial(2014, 7, 2) 'эту дату берем из книги
    If dt < DateExpert Then DateExpert = dt

Next

MsgBox "минимальная дата в книгах " & DateExpert
[/vba]


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Понедельник, 15.05.2017, 09:44
 
Ответить
Сообщение"в вид 45452" - потому что дата - это число, вот Double и показывает число. А если объявить как Date, то покажет нормальную дату (вернее, число в формате даты)
Если выбирать мин дату из нескольких книг, то попробуйте как-то так
[vba]
Код
Dim DateExpert As Date
DateExpert = #5/15/2159# 'назначаем заранее какую-то большую дату

Dim dt As Date

Цикл по книгам

    dt = DateSerial(2014, 7, 2) 'эту дату берем из книги
    If dt < DateExpert Then DateExpert = dt

Next

MsgBox "минимальная дата в книгах " & DateExpert
[/vba]

Автор - nilem
Дата добавления - 15.05.2017 в 09:43
Elhust Дата: Понедельник, 15.05.2017, 09:47 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem, то есть в таком случае нет какой то одной функции только сравнением ...
просто тут не то что бы из рабочей надо сравнивать в той что открылась
а у меня так примерно
открываю книгу запускаю макрос выбираю папку с книгами где есть даты
и мне нужно чтобы из списка дат открытой книги считалось минимальная ...
затем она вводиться напротив имени открытой книги переходит к след и тоже самое


Каждый сам выбирает правила игры

Сообщение отредактировал Elhust - Понедельник, 15.05.2017, 09:49
 
Ответить
Сообщениеnilem, то есть в таком случае нет какой то одной функции только сравнением ...
просто тут не то что бы из рабочей надо сравнивать в той что открылась
а у меня так примерно
открываю книгу запускаю макрос выбираю папку с книгами где есть даты
и мне нужно чтобы из списка дат открытой книги считалось минимальная ...
затем она вводиться напротив имени открытой книги переходит к след и тоже самое

Автор - Elhust
Дата добавления - 15.05.2017 в 09:47
nilem Дата: Понедельник, 15.05.2017, 09:53 | Сообщение № 9
Группа: Авторы
Ранг: Старожил
Сообщений: 1324
Репутация: 470 ±
Замечаний: 0% ±

Excel 2013
А, ну тогда да, просто Worksheetfunction.Min(какие-то даты)
какие-то даты - из активной книги (которая сейчас открыта в цикле)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Понедельник, 15.05.2017, 09:56
 
Ответить
СообщениеА, ну тогда да, просто Worksheetfunction.Min(какие-то даты)
какие-то даты - из активной книги (которая сейчас открыта в цикле)

Автор - nilem
Дата добавления - 15.05.2017 в 09:53
Elhust Дата: Понедельник, 15.05.2017, 10:01 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem, Вот вроде всё хорошо но ошибка "Невозможно получить свойство Min класса WorksheetFunction" 1004


Каждый сам выбирает правила игры
 
Ответить
Сообщениеnilem, Вот вроде всё хорошо но ошибка "Невозможно получить свойство Min класса WorksheetFunction" 1004

Автор - Elhust
Дата добавления - 15.05.2017 в 10:01
nilem Дата: Понедельник, 15.05.2017, 10:30 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1324
Репутация: 470 ±
Замечаний: 0% ±

Excel 2013
Тогда нужен пример файла. И код, который с этим файлом работает.


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеТогда нужен пример файла. И код, который с этим файлом работает.

Автор - nilem
Дата добавления - 15.05.2017 в 10:30
Michael_S Дата: Понедельник, 15.05.2017, 11:05 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1834
Репутация: 344 ±
Замечаний: 0% ±

Excel2016
nilem, слушай

Elhust, вы 90 года, а Николай (nilem,) - 67... разница более 20 лет... Да и вообще, у нас на форуме приято общаться на "вы".
Это я еще могу Коле сказать "ты", как и он мне - мы друг друга давно знаем, но и то, по привычке обычно говорим "вы".
Извините за нравоучения.


ЯД: 41001136675053
WM: R389613894253
 
Ответить
Сообщение
nilem, слушай

Elhust, вы 90 года, а Николай (nilem,) - 67... разница более 20 лет... Да и вообще, у нас на форуме приято общаться на "вы".
Это я еще могу Коле сказать "ты", как и он мне - мы друг друга давно знаем, но и то, по привычке обычно говорим "вы".
Извините за нравоучения.

Автор - Michael_S
Дата добавления - 15.05.2017 в 11:05
Elhust Дата: Понедельник, 15.05.2017, 11:41 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 158
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
nilem, Michael_S, Прошу прощения если кого задел ... буду держаться за правила впредь


Каждый сам выбирает правила игры
 
Ответить
Сообщениеnilem, Michael_S, Прошу прощения если кого задел ... буду держаться за правила впредь

Автор - Elhust
Дата добавления - 15.05.2017 в 11:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразование даты в число и наоборот (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!