|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.01.2021, 12:48 | #11 |
Пользователь
Регистрация: 30.11.2020
Сообщений: 36
|
При всем моем уважении... Файлы называются именно так. (Во вложении скриншот экрана). При открытии любого из этих файлов и попытке запустить макрос, пишет ошибку которую Вы описали.
|
26.01.2021, 14:07 | #12 | |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Зачем?
Сравниваем 2 фрагмента, ищем отличия Цитата:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
|
26.01.2021, 20:50 | #13 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
...
If InStr(Ucase(Filename), "ДИМА") > 0 Then Дима ... Sub Дима() Debug.Print "Дима" End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
28.01.2021, 12:25 | #14 |
Пользователь
Регистрация: 30.11.2020
Сообщений: 36
|
Я сдаюсь. Таким тупым я не чувствовал себя со дня свадьбы Перепробовал сотни вариантов. Не работает! В итоге все что было собрал в один модуль. Да, он перестал ругаться на "Application.Run macroName", но и он ничего не делает.!!! Сами макросы я изменил на элементарные, чтобы просто понять, работает или нет. В итоге, в одном модуле мы видим вот это.. Но ничего не происходит Как будто он не видит имя файла и не запускает соответствующий макрос(((
Sub SelectSubroutines() Dim Filename As String Dim macroName As String Filename = LCase(ActiveWorkbook.Name) If InStr(Filename, "остатки") = 1 Then macroName = "МакросОстатки" ElseIf InStr(Filename, "деньги") = 1 Then macroName = "МакросДеньги" ElseIf InStr(Filename, "товар") = 1 Then macroName = "МакросТовар" ElseIf InStr(Filename, "клиент") = 1 Then macroName = "МакросКлиент" End If Application.Run macroName End Sub Sub МакросОстатки() Debug.Print 1 End Sub Sub МакросДеньги() Debug.Print 2 End Sub Sub МакросТовар() Debug.Print 3 End Sub Sub МакросКлиент() Debug.Print 4 End Sub Sub Деньги() ' ' Деньги Макрос ' ' Сочетание клавиш: Ctrl+d Range("A1").Select ActiveCell.FormulaR1C1 = "Деньги" Range("A2").Select End Sub Sub Товар() ' ' Товар Макрос Range("A1").Select ActiveCell.FormulaR1C1 = "Товар" Range("A2").Select End Sub Sub Остатки() ' ' Остатки Макрос ' ' Сочетание клавиш: Ctrl+o ' Range("A1").Select ActiveCell.FormulaR1C1 = "Остатки" Range("A2").Select End Sub Sub Клиенты() ' ' Клиенты Макрос ' ' Сочетание клавиш: Ctrl+k ' Range("A1").Select ActiveCell.FormulaR1C1 = "Клиенты" Range("A2").Select End Sub |
28.01.2021, 12:29 | #15 |
Пользователь
Регистрация: 30.11.2020
Сообщений: 36
|
Все файлы называются с МАЛЕНЬКОЙ буквы "остатки xlsx" итд. Но если переименовать на "Остатки" (с большой буквы), то сразу выскакивает ошибка - Application.Run macroName
|
28.01.2021, 13:32 | #16 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Запустите форму, посмотрите реализацию. В вас такой вариант работал?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
28.01.2021, 14:31 | #17 |
Пользователь
Регистрация: 30.11.2020
Сообщений: 36
|
Нет, такой вариант не работал. Но и этот работает криво. Сейчас при открытие любого файла, даже с именем "книга1", запуская макрос выдаются случайные значения -деньги, остатки, товар итд по кругу.
|
28.01.2021, 15:48 | #18 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Так, давайте зайдем с другой стороны.
Какое задание хотите реализовать?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
28.01.2021, 17:02 | #19 |
Пользователь
Регистрация: 30.11.2020
Сообщений: 36
|
Да, давайте тогда по порядку. Ежедневно получаем вот такие четыре файла по почте.
Остатки Интернет Леруа 28.01.21.xlsx Остатки склад Леруа 28.01.21.xlsx Остатки по складу с ценами 28.01.21.xlsx Резервы 28.01.21.xlsx Файлы всегда имеют такие названия, только меняется дата. Чтобы облегчить ассистентам жизнь, я сделал коллегам макросы, которые приводят эти файлы в порядок и переносят данные в нужный отчет. Сейчас это работает так: девушки запускают userform, где нарисовано 4 кнопки "обновить остатки Леруа", "Обновить резервы", "Обновить ИНТЕРНЕТ остатки Леруа" и "обновить остатки склада". В зависимости от того, какую кнопку они нажали, тот макрос и начинает выполняться. Но, хоть я и сделал окно предупреждения, которое точно спрашивает - "Вы уверены, что обновляем остатки склада",? они все равно жмут "да", открыв файл "Резервы" или что то другое. Нужна либо защита от дурака (а Вы мне уже с ней помогли) и прежде чем запуститься, макрос проверяет имя файла, либо чтобы прочитав имя файла (БЕЗ ДАТЫ) макрос понял, какой именно макрос запустить автоматически. И еще .. Макрос может быть не один. Например, при открытии файла "резервы" запускается сначала макрос1, после его выполнения запускается Макрос2. Это происходит из за тог, что иногда задачи меняются и мне проще "дописать" отдельный макрос, чем править основной. Вот мне и нужно, чтобы при открытие файла "Резервы 28.01.21.xlsx" (для примера) макрос понял, что нужно запустить макрос 1, следом макрос2 , а при открытии файла "Остатки склад Леруа 28.01.21.xlsx", макрос понял имя и запустил макрос3 и макрос4( если он есть). Вся идея, сделать одну кнопку "обновить", чтобы в зависимости от открытого файла, обновлялись данные. И еще, хорошо бы сделать "Окно предупреждения", которое бы при попытке нажать кнопку "обновить" при открытии другого файла (Книга1, sss, итд) написала бы -" с этим файлом я не работаю". Хотя это уже не обязательно |
28.01.2021, 17:24 | #20 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Девушка открывает файл "Остатки Интернет Леруа 28.01.21.xlsx" и там есть юзерформа?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. Последний раз редактировалось Aleksandr H.; 28.01.2021 в 17:27. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск исполняемого файла из макроса | caute | Microsoft Office Word | 4 | 06.03.2016 20:28 |
Снять привязку макроса к имени файла | Lamo | Microsoft Office Excel | 6 | 02.08.2013 11:56 |
Выполнение макроса при определенном значении параметра | vanandr91 | Microsoft Office Excel | 7 | 27.02.2012 23:10 |
Запуск макроса при открытии файла | ПавелАлександрович | Microsoft Office Excel | 4 | 04.03.2011 10:07 |
Выполнения макроса(с подстановкой имени) при условии ячейки... | MaxZoa | Microsoft Office Excel | 7 | 22.04.2008 11:08 |