Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 07.02.2022
Сообщений: 62
1

Макрос vb. Сравнение даты с временем, с учётом погрешности

02.02.2023, 18:28. Показов 466. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте, форумчане.
Столкнулась с непосильной для меня задачей.
На листе 2 имеется информация:дата, статус, сумма.
На листе 1 информация: дата, код события, сумма.
Лист 3- сумма
Макросу:
На листе 1 необходимо найти строки с кодом события 12. В этих строках взять значения даты и сравнить со значениями на листе 2, при этом время может отличаться на несколько секунд (до +10 секунд), сравнить значение столбца сумма.
При совпадении ( а оно будет обязательно), подсуммировать значение столбца сумма, и поместить его на лист 3.
Строчек на листах 1,2 несколько тысяч.
Буду благодарна за помощь.
Вложения
Тип файла: xlsx Пример.xlsx (13.2 Кб, 7 просмотров)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2023, 18:28
Ответы с готовыми решениями:

Совпадение значений с учетом погрешности
Добрый день! var m1:Array= main.s2_0.sa1.text=m1; var m2:Array= main.s2_0.sa2.text=m2; var...

Корректировка времени с учетом погрешности
Добрый день! Подскажите как реализовать следующее. Имеем в форме поле в котором указывается...

Вычисление суммы ряда c учетом погрешности
Входными данными программы, вводимыми с консоли, являются значение аргумента x и параметр p,...

Переименование файла с датой и временем в имени с учетом GMT
Всем привет. Имеются файлы с одной системы ***********_ГГГГММДД_ЧЧММ и имеются файлы второй системы...

Выборка данных через сравнение даты в DataGridView и текущей даты
Ситуация такова: в датагриде есть столбец с определенной датой. Нужно сравнить все даты с этого...

5
Часто онлайн
925 / 627 / 277
Регистрация: 09.01.2017
Сообщений: 2,062
03.02.2023, 10:32 2
Лучший ответ Сообщение было отмечено JJ1989 как решение

Решение

JJ1989, попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub TimeCompare()
 
    Set ws1 = Sheets("1")
    Set ws2 = Sheets("2")
    Set ws3 = Sheets("3")
 
    lr1 = ws1.Cells.SpecialCells(xlLastCell).Row
    lr2 = ws2.Cells.SpecialCells(xlLastCell).Row
 
    For i = 2 To lr1
        If ws1.Cells(i, 2) = 12 Then
            For j = 2 To lr2
                If Abs(DateDiff("s", CDate(ws1.Cells(i, 1)), CDate(ws2.Cells(j, 1)))) <= 10 Then
                   Sum1 = Sum1 + ws2.Cells(j, 3).Value
                End If
            Next
        End If
    Next
    ws3.Cells(2, 1).Value = Sum1
End Sub
1
901 / 334 / 43
Регистрация: 10.05.2021
Сообщений: 1,445
Записей в блоге: 10
03.02.2023, 10:42 3
JJ1989, здравствуйте
А в чём помощь-то, если у вас тут ТЗ "под ключ"? Помогать тут не с чем — только сделать за вас комплексную задачу.
0
1 / 1 / 0
Регистрация: 07.02.2022
Сообщений: 62
03.02.2023, 14:49  [ТС] 4
Это не тз, это его микрочасть. Ибо большая часть уже сделана. В самом проекте листов 15 с совершенно разными исполняемыми на них задачами...совместно или отдельно.
По сути требуется именно помощь с озвученный в теме задачей. Всё остальное можете считать уточнением. Просто без озвучивания дальнейших шагов есть вариант, что код и не сработает в итоге как надо...

Добавлено через 9 минут
Цитата Сообщение от КостяФедореев Посмотреть сообщение
JJ1989, попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub TimeCompare()
 
    Set ws1 = Sheets("1")
    Set ws2 = Sheets("2")
    Set ws3 = Sheets("3")
 
    lr1 = ws1.Cells.SpecialCells(xlLastCell).Row
    lr2 = ws2.Cells.SpecialCells(xlLastCell).Row
 
    For i = 2 To lr1
        If ws1.Cells(i, 2) = 12 Then
            For j = 2 To lr2
                If Abs(DateDiff("s", CDate(ws1.Cells(i, 1)), CDate(ws2.Cells(j, 1)))) <= 10 Then
                   Sum1 = Sum1 + ws2.Cells(j, 3).Value
                End If
            Next
        End If
    Next
    ws3.Cells(2, 1).Value = Sum1
End Sub
Премного благодарна.)
Всё намного проще, чем я предполагала, но самой мне точно было не додуматься.
Ваша помощь неоценима.
0
I can
03.02.2023, 16:20
  #5

Не по теме:

Цитата Сообщение от JJ1989 Посмотреть сообщение
Ваша помощь неоценима.
Так обычно говорят, когда платить не хотят. )))

0
1 / 1 / 0
Регистрация: 07.02.2022
Сообщений: 62
03.02.2023, 19:14  [ТС] 6
Или когда благодарят на форуме. Если бы я хотела готовый проект, то я бы его заказала, но...я лабаю его сама и учусь у знающих людей, как в данном случае.
Если КостеФедорееву захочется за код вознаграждения, он всегда может написать мне об этом в личку. Не карается)
0
03.02.2023, 19:14
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2023, 19:14
Помогаю со студенческими работами здесь

Макрос со временем начинает тормозить
Добрый день. Нужен Ваш совет. Есть финансовая программа, которая обрабатывает данные в...

Сравнение введенной даты и даты записанной в файле
Имеется файл в котором структура записи такова: имя фаила(8зн), спецификация(3зн), дата создания...

Макрос в ворд по имени и дате со временем
Добрый день, макрос должен проверять на наличие файла таким же именем в папке, но он не работает,...

Отображение даты рядом со временем
Всем привет Обновил винду (10) и заметил что на панели задач (Использую StartlsBack) в её...

Перевод С# на C++. Сравнение с мировым временем
Привет господа. Решил с шарпа переходить на плюсы. Весь проект проект пересобрал работает но кроме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru