Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разность дат / 23 сообщений из 23, страница 1 из 1
09.01.2018, 11:05
    #39580872
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Есть две даты (одна над второй). Хочу узнать разность между ними (в днях).Прога выдает значение “0”.Ошибка в переменных vat1,vat2 . Подскажите , как правильно их задать ?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub ógv()
Dim dat1 As Date
Dim dat2 As Date
Dim vat1 As Date
Dim vat2 As Date
Dim Day1 As Long
Dim Month1 As Long
Dim Year1  As Long
Dim Day2 As Long
Dim Month2 As Long
Dim Year2  As Long
Dim C As Range

Set C = ThisWorkbook.ActiveSheet.Range("C35")
'1
dat1 = C.Value
Day1 = DatePart("d", dat1)
Month1 = DatePart("m", dat1)
Year1 = DatePart("yyyy", dat1)
vat1 = Month1 / Day1 / Year1
'2
dat2 = C.Offset(-1, 0).Value
Day2 = DatePart("d", dat2)
Month2 = DatePart("m", dat2)
Year2 = DatePart("yyyy", dat2)
vat2 = Month2 / Day2 / Year2
        
        
        Dni = DateDiff("d", vat2, vat1)
         MsgBox Dni
                     
End Sub
...
Рейтинг: 0 / 0
09.01.2018, 11:31
    #39580895
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863
Код: vbnet
1.
vat1 = Month1 / Day1 / Year1

А что ты пытаешься получить, разделив месяц на день и на год?
...
Рейтинг: 0 / 0
09.01.2018, 11:33
    #39580899
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Хочу узнать разность между ними (в днях) https://msdn.microsoft.com/ru-ru/vba/language-reference-vba/articles/datediff-function
...
Рейтинг: 0 / 0
09.01.2018, 11:35
    #39580901
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
И зачем дату надо разбирать на день-месяц-год, а потом собирать (и, как правильно указал Shocker.Pro , через одно место) обратно?
Вычитай сразу...
...
Рейтинг: 0 / 0
09.01.2018, 11:43
    #39580911
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Akina,
Проблема в том , что дата (27.11.2017) , т.е (день.месяц.год) , а в vba месяц.день.год , поэтому и разбираю
...
Рейтинг: 0 / 0
09.01.2018, 11:46
    #39580914
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Akina,
Проблема в том , что дата (27.11.2017) , т.е (день.месяц.год) , а в vba месяц.день.год , поэтому и разбираюПроблема в том, что ты не понимаешь, чем отличается тип данных (дата, строка), от форматирования даты. Форматирование даты в виде строки не имеет никакого отношения к хранению данных в типе данных Data.

Если в ячейке у тебя тип "Дата", то в переменной типа Date ты получишь ДАТУ и можешь делать над ней операции
...
Рейтинг: 0 / 0
09.01.2018, 11:48
    #39580915
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,

Я хочу задать дату , типа #27.11.2016# через переменные ,просто не знаю как правильно это сделать
...
Рейтинг: 0 / 0
09.01.2018, 11:48
    #39580916
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Для иллюстрации: в четырех ячейках лежит одно и то же значение, просто разный формат ячеек.
...
Рейтинг: 0 / 0
09.01.2018, 11:49
    #39580917
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Я хочу задать дату , типа #27.11.2016# через переменные ,просто не знаю как правильно это сделатьДелать ничего не надо.
Код: vbnet
1.
dat1 = C.Value

в dat1 уже лежит дата
...
Рейтинг: 0 / 0
09.01.2018, 11:58
    #39580926
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,
Я так пробовал делать , не получается ,потому что
(Проблема в том , что дата (27.11.2017) , т.е (день.месяц.год) , а в vba месяц.день.год)
...
Рейтинг: 0 / 0
09.01.2018, 12:02
    #39580935
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863 , тебе ж русским по белому сказали, что ЗНАЧЕНИЕ и его ОТОБРАЖЕНИЕ - это разные вещи. Не кивай на второе, ибо первое всё равно не такое, каким ты его видишь.
...
Рейтинг: 0 / 0
09.01.2018, 12:05
    #39580940
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863в vba месяц.день.годэто касается ТОЛЬКО ЛИТЕРАЛОВ даты
В данном случае ты дату литерально не вводишь, поэтому тебе на это наплевать.

Единственная проблема тут может быть, что у тебя в ячейке экселя хранится не дата, а текст в виде даты. Но и в этом случае проблема решается парсингом, а вовсе не так, как ты задумал.
Проверить эту версию и помочь возможным не представляется, так как эксель-файл ты не выложил
...
Рейтинг: 0 / 0
09.01.2018, 12:16
    #39580953
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,
Все верно , дата в в ячейке это результат парсинга (т.е. текст) Смысла выкладывать эксель файл до сих пор не вижу
...
Рейтинг: 0 / 0
09.01.2018, 12:24
    #39580961
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Смысла выкладывать эксель файл до сих пор не вижуНу ковыряйся сам тогда, раз не видишь.
...
Рейтинг: 0 / 0
09.01.2018, 12:26
    #39580963
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,
конструктивно
...
Рейтинг: 0 / 0
09.01.2018, 12:26
    #39580964
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Код: vbnet
1.
Dni = Cells(36, 3).Value - Cells(35, 3).Value
...
Рейтинг: 0 / 0
09.01.2018, 12:32
    #39580969
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863конструктивноТо есть конструктивным ты считаешь заставлять нас угадывать, что там у тебя за исходные данные, при этом не пошевелить пальцем, чтобы выложить тестовый файлик с парой строк, чтобы твоя проблема была решена за минуту?
...
Рейтинг: 0 / 0
09.01.2018, 13:09
    #39581002
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Смысла выкладывать эксель файл до сих пор не вижуПффф... у тебя проблемы, не у нас... можешь и дальше сидеть на своём файле, авось решение само нарастёт...
...
Рейтинг: 0 / 0
09.01.2018, 13:13
    #39581003
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,
...
Рейтинг: 0 / 0
09.01.2018, 13:15
    #39581007
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Akina,
Раз , вы настаиваете
...
Рейтинг: 0 / 0
09.01.2018, 13:19
    #39581010
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Код: vbnet
1.
2.
3.
4.
Dim split1 As Variant, dat1 As Date
split1 = Split(Range("C35").Text, ".")
dat1 = DateSerial(split1(2), split1(1), split1(0))
MsgBox dat1
...
Рейтинг: 0 / 0
09.01.2018, 13:21
    #39581013
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
maxim863Раз , вы настаиваетевот до сих пор спорит, вы посмотрите
Чтобы мне написать вышеприведенный код, мне нужно было знать в каком формате у вас эта дата, какой разделитель используется. Не очевидно разве?
...
Рейтинг: 0 / 0
10.01.2018, 10:21
    #39581520
maxim863
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разность дат
Shocker.Pro,
Спасибо ,работает !
Извиняюсь за недопонимание
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разность дат / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]