powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разность дат
23 сообщений из 23, страница 1 из 1
Разность дат
    #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
Разность дат
    #39580895
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim863
Код: vbnet
1.
vat1 = Month1 / Day1 / Year1

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

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

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

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

Единственная проблема тут может быть, что у тебя в ячейке экселя хранится не дата, а текст в виде даты. Но и в этом случае проблема решается парсингом, а вовсе не так, как ты задумал.
Проверить эту версию и помочь возможным не представляется, так как эксель-файл ты не выложил
...
Рейтинг: 0 / 0
Разность дат
    #39580953
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Все верно , дата в в ячейке это результат парсинга (т.е. текст) Смысла выкладывать эксель файл до сих пор не вижу
...
Рейтинг: 0 / 0
Разность дат
    #39580961
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim863Смысла выкладывать эксель файл до сих пор не вижуНу ковыряйся сам тогда, раз не видишь.
...
Рейтинг: 0 / 0
Разность дат
    #39580963
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
конструктивно
...
Рейтинг: 0 / 0
Разность дат
    #39580964
Aster32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
Dni = Cells(36, 3).Value - Cells(35, 3).Value
...
Рейтинг: 0 / 0
Разность дат
    #39580969
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim863конструктивноТо есть конструктивным ты считаешь заставлять нас угадывать, что там у тебя за исходные данные, при этом не пошевелить пальцем, чтобы выложить тестовый файлик с парой строк, чтобы твоя проблема была решена за минуту?
...
Рейтинг: 0 / 0
Разность дат
    #39581002
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim863Смысла выкладывать эксель файл до сих пор не вижуПффф... у тебя проблемы, не у нас... можешь и дальше сидеть на своём файле, авось решение само нарастёт...
...
Рейтинг: 0 / 0
Разность дат
    #39581003
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
...
Рейтинг: 0 / 0
Разность дат
    #39581007
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Раз , вы настаиваете
...
Рейтинг: 0 / 0
Разность дат
    #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
Разность дат
    #39581013
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxim863Раз , вы настаиваетевот до сих пор спорит, вы посмотрите
Чтобы мне написать вышеприведенный код, мне нужно было знать в каком формате у вас эта дата, какой разделитель используется. Не очевидно разве?
...
Рейтинг: 0 / 0
Разность дат
    #39581520
maxim863
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Спасибо ,работает !
Извиняюсь за недопонимание
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разность дат
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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