Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2019, 13:50   #1
netmaker
 
Регистрация: 21.06.2018
Сообщений: 6
По умолчанию Как исправить макрос для вставки пропущенных дат за определённый период

Здравствуйте дорогие друзья!
Имеется файл Example.xls с имеющимся кодом макроса:
Код:
Sub InsRows()
    Dim i As Long, j As Long, k As Long, m As Long, n As Long
    Dim maDt As Long, miDt As Long, a(), b(), z, q
    Application.ScreenUpdating = False
    Set z = CreateObject("Scripting.Dictionary")
    i = Cells(Rows.Count, 1).End(xlUp).Row
    a = Range("A3:P" & i).Value
    miDt = Application.Min(Range("H3:H" & i))
    maDt = Application.Max(Range("H3:H" & i))
    For i = 1 To UBound(a, 1): z(a(i, 2)) = i: Next
    ReDim b(1 To z.Count * (maDt - miDt + 1), 1 To UBound(a, 2))
    For Each q In z.Items
        For j = miDt To maDt
            k = k + 1
            For m = 1 To 7
                b(k, m) = a(q, m)
                b(k, 8) = j
                For i = 1 To UBound(a, 1)
                    If a(i, 8) = j Then
                        If a(i, 2) = b(k, 2) Then
                            For n = 9 To 16: b(k, n) = a(i, n): Next
                            Exit For
    End If: End If: Next: Next: Next: Next
    [A3].Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub
И есть файл генерируемый аппаратом регистрации времени рабочих DATA.xls которого нужно обработать как в EXAMPLE.xls. У нас в организации табельный период начинается 20 числа месяца и заканчивается 19 числа следующего месяца. Но аппарат при генерации отчёта даёт данные только проработанных рабочим дней, а остальные дни приходится проставлять в ручную.
Макрос не работает так как нужно. Он и В столбец тоже считает как уникальный.
В файле DATA.xls уникальным являются только столбцы А (ID) и (или) E (Table ID).
Помогите пожалуйста исправить макрос!
Может быть есть решение полегче этой?
Заранее большое спасибо!
Вложения
Тип файла: xls Example.xls (38.0 Кб, 7 просмотров)
Тип файла: xls DATA.xls (231.5 Кб, 6 просмотров)

Последний раз редактировалось netmaker; 28.12.2019 в 14:12.
netmaker вне форума Ответить с цитированием
Старый 28.12.2019, 17:57   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в итоге есть неработающий макрос и два файла
нет только описания задачи, что пытаемся посчитать?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.01.2020, 07:10   #3
netmaker
 
Регистрация: 21.06.2018
Сообщений: 6
По умолчанию

Здравствуйте! Макрос должен был проставить пропущенные даты в строки, чтобы не приходилось вручную проставлять.
netmaker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для вставки пропущенных дат за определённый период. netmaker Microsoft Office Excel 5 25.12.2019 10:35
[access]реализовать вывод отчёта продажи за определённый период времени nuevegramodelamor Фриланс 1 18.04.2011 09:50
макрос вставки строк!!! Andrew11 Microsoft Office Excel 2 10.03.2011 16:09
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51
Макрос при вставки строк Trimbl Microsoft Office Excel 11 08.02.2010 10:40