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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2017, 16:28   #1
Oleg_123
Пользователь
 
Регистрация: 04.06.2017
Сообщений: 25
По умолчанию Чем обусловлено разное действие одного и того же макроса в разных файлах?

Здравствуйте!
Почему один и тот же макрос в одном файле выводит общий итог (колонки 3 и 4 на листе "Список по районам"), а в другом - нет.
В файле-примере три вкладки:
"База данных травма", "Реестр" и "Список по районам"
Макрос "БОЛЬНИЧКА01" выводит итоги на вкладку "Список по районам" с "База данных травма", "БОЛЬНИЧКА02" - с вкладки "Реестр"
Из файлов удалены персональные данные, оставлено содержимое колонок, с которых работает макрос. Оставлена структура файлов.
И как сделать, чтобы макрос запускался с кнопки, где можно было бы задать к примеру, "с 01.03.2017 по 01.04.2017" или другой период времени?
Книга1.rar
Вроде все поменял в макросе, в обоих случаях макрос - рабочий.
Однако с вкладки "База данных травма" он считает общий итог, а с владки "Реестр" - нет.
Не могу понять, в чем причина.
Заранее спасибо
С ув. Олег

Последний раз редактировалось Oleg_123; 24.06.2017 в 18:05.
Oleg_123 вне форума Ответить с цитированием
Старый 24.06.2017, 19:24   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

У меня вроде оба работают и всё считают.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.06.2017, 20:18   #3
Oleg_123
Пользователь
 
Регистрация: 04.06.2017
Сообщений: 25
По умолчанию

У меня с одного макроса вот - это:
Рис1.jpg
Со второго:
Рис2._.jpg
Не могу понять, почему
Oleg_123 вне форума Ответить с цитированием
Старый 24.06.2017, 21:36   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

БОЛЬНИЧКА02
Код:
For i = 5 To UBound(b) 'проходим про строкам, начиная с 5й
БОЛЬНИЧКА01
Код:
For i = 3 To UBound(b) 'проходим про строкам, начиная с 3й
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.06.2017, 21:48   #5
Oleg_123
Пользователь
 
Регистрация: 04.06.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
БОЛЬНИЧКА02
Код:
For i = 5 To UBound(b) 'проходим про строкам, начиная с 5й
БОЛЬНИЧКА01
Код:
For i = 3 To UBound(b) 'проходим про строкам, начиная с 3й
???
Так, я сделал эти изменения, чтоб заработал макрос во втором случае, т.к., во втором случае массив начинается с 5 строки (до 5 строки - там оглавления, шапка таблицы);
в первом же случае, - с 3-й строки, т.к., все, что выше 3-й строки - там тоже оглавления, таблица начинается с 3-й строки.
Как это отвечает на мой вопрос?

Последний раз редактировалось Oleg_123; 24.06.2017 в 21:54.
Oleg_123 вне форума Ответить с цитированием
Старый 24.06.2017, 22:59   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вы пробовали оба макроса запускать от 3 строки? Все так же один выводит, другой нет?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.06.2017, 23:43   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Надо было сразу конкретно указать где там эти суммы - или мы тут играем в найди 10 отличий?
Правильно указали про 3/5 - массив ведь лежит на боку.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.06.2017, 07:56   #8
Oleg_123
Пользователь
 
Регистрация: 04.06.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Надо было сразу конкретно указать где там эти суммы - или мы тут играем в найди 10 отличий?
Правильно указали про 3/5 - массив ведь лежит на боку.
"конкретно указать где там эти суммы" - см выше, я их указал.
Насчет отличий - их не 10.
Это номера колонок
1) с датами осмотра;
а)
Код:
key_date = CDate(a(i, 7))
б)
Код:
 key_date = CDate(a(i, 6))
2) с районами;
а)
Код:
If a(i, 20) <> "" Then sd_dist.Item(a(i, 20)) = ""
б)
Код:
If a(i, 11) <> "" Then sd_dist.Item(a(i, 11)) = ""
3) с группами;
а)
Код:
gr = Gruppa(a(i, 31))
б)
Код:
gr = Gruppa(a(i, 21))
и аргументы функции в конце макроса
а)
Код:
Function Gruppa(ByVal arg As String) As Byte
    Dim x As Byte
'-----------------
    Select Case arg
        Case "1А": x = 1
        Case "1Б": x = 2
        Case "Вторая": x = 3
        Case "Третья": x = 4
        Case Else: x = 0
    End Select
    Gruppa = x
End Function
Код:
Function Gruppa(ByVal arg As String) As Byte
    Dim x As Byte
'-----------------
    Select Case arg
        Case "1а": x = 1
        Case "1б": x = 2
        Case "2": x = 3
        Case "3": x = 4
        Case Else: x = 0
    End Select
    Gruppa = x
End Function
Иначе они не запустятся.

А в остальном макросы ничем не отличаются.
Однако, в одном случае выводится общий итог, в другом нет. (См выше)
А что значит "массив ведь лежит на боку."?

Последний раз редактировалось Oleg_123; 25.06.2017 в 08:21.
Oleg_123 вне форума Ответить с цитированием
Старый 25.06.2017, 08:13   #9
Oleg_123
Пользователь
 
Регистрация: 04.06.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Вы пробовали оба макроса запускать от 3 строки? Все так же один выводит, другой нет?
Пробовал, второй макрос вообще не запускается
ОШИБКА макроса.JPG
ОШИБКА макроса1.jpg
При изменении 3 на 5 во втором макросе он работает
Oleg_123 вне форума Ответить с цитированием
Старый 25.06.2017, 09:26   #10
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Вы пробовали оба макроса запускать от 3 строки?
Цитата:
Сообщение от Oleg_123 Посмотреть сообщение
При изменении 3 на 5 во втором макросе он работает
Код сами писали или дорабатываете?
Вложения
Тип файла: rar Книга1.rar (3.24 Мб, 12 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отменить действие макроса в функции If ольгаг Microsoft Office Excel 2 11.12.2015 23:10
Транспонирование множества данных из разных книгах или из разных листов на 1 лист посредством макроса Тантана Microsoft Office Excel 6 18.12.2014 13:04
Как на дле разных категориях выводить разное количество похожих новостей у новости? pq777pq PHP 1 02.07.2011 00:49
PageControl. На каждой фкладке одинаковый врейм но действие на всех разное. Человек_Борща Общие вопросы Delphi 4 06.05.2011 18:03
Вывод разных стилей под разное разрешение. Как правильно оформить? Steh PHP 1 20.07.2010 12:01