Цитата |
---|
Интересно Вы используете Me (я смог лишь загуглить, что в VBA это ключевое слово).
Но с чем его едят и под каким соусом - это осталось загадкой.
31.07.2024 19:26:57
Изменено: |
|||
|
31.07.2024 15:59:26
Уважаемые форумчане! Прошу помощи. Имеется один "файл-источник", в котором на одном листе в ячейках лежат картинки (там подписи исполнителей и их штампы). "Файлы-потребители" этих картинок находятся в близлежащих папках. Картинка через диспетчер задач заполняется на листы "файла-потребителя" в зависимости от выбранных Фамилии И.О. исполнителей. Почему я реализовал такую систему: если вставлять картинки на отдельные листы каждого файла - требуется подгонка по размеру, т.к штампы и подписи немного по разному смещены. Плюс такие файлы будут весить в разы больше.
Теперь к сути: связь между файлами работает только в случае, если "файл-источник" открыт (в отличие скажем от функции ВПР, которая может найти связанное значение в другом файле даже когда тот закрыт). Но это полбеды. Самое противное, что в диспетчере имен без конца перебивается ссылка на "файл-источник" сразу, как только файл закрывается, и открывается вновь. Excel переписывает ссылку, указывая полный путь. И при этом ссылки перестают работать. Приходится копировать короткую ссылку и тогда все начинает работать. Короткая ссылка из Диспетчера имен: =ИНДЕКС('[Образец для барабанов.xlsm]Данные'!$F$21:$F$30;'Паспорт качества'!$E$31) Длинная ссылка из Диспетчера имен: =ИНДЕКС('K:\ОТК\СМК\Протоколы испытаний +сертификаты+бирки\БЛАНКИ протокол+паспорт+бирка\[Образец для барабанов.xlsm]Данные'!$F$21:$F$30;'Паспорт качества'!$E$31) Скрин диспетчера имен, а также формирование второго значения для функции ИНДЕКС также прикладываю. Если требуется еще какая-то информация - прошу написать об этом. |
|
|
29.05.2024 14:08:31
Всем спасибо за ответы! Нашел нужную ветку на
Буду стряпать свою надстройку. |
|
|
29.05.2024 13:12:19
Добрый день, уважаемые форумчане.
Прошу на основании опыта ответить на полагаю несложный вопрос, ответ на который для меня очень важен. Я только делаю первые шаги в VBA (то бишь чайник). Итак, на сервере в одной корневой папке с несколькими вложенными папками хранятся однотипные книги, имеющие одинаковое название листов. Для упрощения работы я написал простенький макрос, который распечатывает 1 экз. с третьего листа, 1 экз. с первого листа и 2 экз. со второго листа. Для запуска макроса на первый лист я добавил кнопку. Такой макрос мне нужно вставить во все однотипные книги. Варианты решения (о которых я знаю): 1) в каждой книге копипастить макрос и привязывать его к кнопке 2) в одной книге создать макрос, а к кнопкам в других книгах привязать этот макрос. По факту такой вариант работает (т.к. используется объект "ActiveWorkbook" и он запускает макрос в разрезе книги, в которой нажата кнопка, но не чревато ли это подводными камнями?.. 3) Вариант с макросом в Личной папке макросов для меня не подходит, т.к. с книгами будет работать 2-3 пользователя. Суть вопроса: Как лучше реальзовать работу? по п.1), по п.2) или есть другой вариант? Макрос - ниже. Sub ПечатьБарабан() ' ' Печать Макрос ' Объявляем переменные для листов Dim sh01 As Worksheet Dim sh02 As Worksheet Dim sh03 As Worksheet ' Присваиваем листам имена Set sh01 = ActiveWorkbook.Worksheets("Протокол испытаний") Set sh02 = ActiveWorkbook.Worksheets("Паспорт качества") Set sh03 = ActiveWorkbook.Worksheets("Бирка на барабан") ' Распечатываем sh03.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False sh01.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False sh02.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False ' Курсор возвращаем в левый верхний угол листа "Протокол испытаний" Sheets("Протокол испытаний").Select Range("A1").Select End Sub
Изменено: |
|
|
27.05.2024 08:56:30
|
|||
|
23.05.2024 13:43:20
Изменено: |
|||
|
21.05.2024 14:16:16
Если Вам будет удобнее, прошу мою часть кода удалить, возможно она мешает. Иначе получается шляпа. Это кусок кода из бескрайних просторов интернета. Вывод информационного окна (MsgBox "A1" ) непринципиален и даже лишний. Я наваял такой файл (во вложении). Недостаток в том, что пришлось заполнять формулы в графу С и ячейку В4. Хотелось бы уметь обходиться без таких танцев с бубном.
Изменено: |
|||
|
21.05.2024 10:00:34
Доброго времени суток, уважаемые формучане.
Прошу помочь с написанием макроса, который бы выделял диапазон ячеек в графах от D до M. Условия, которые нужно выполнить: Ячейка начала диапазона фиксированная - D4. Ячейка конца диапазона: строка соответствует позиции последней заполненной ячейки в графе D; графа M. Значения ячеек в графах D-M переносятся с помощью прямых ссылок с другого листа (из данного файла их убрал). Ячейки в графе D, в которых стоит формула, выдающая "", не должны учитываться при выделении диапазона. Попытка загуглить такой макрос результатов не принесла. А запись макроса дает только фиксированный диапазон. Файл, о котором речь - прикладываю. Заранее благодарен |
|
|
02.05.2024 09:59:58
|
|||
|
02.05.2024 08:48:02
Всем доброго времени суток. Вроде вопрос по данной теме...
Прошу подсказать на основании ВАШЕГО личного опыта. По работе пришлось создавать десятиэтажную формулу, которую логично было бы сделать намного меньше, используя ВПР и разместив данные для подбора значений на основании содержимого ячеек текста на отдельном листе. Но, во-первых, работа уже проделана и вроде файл не тормозит. А больше беспокоит тот факт, не станет ли такой файл более тяжелым и не начнет ли подтормаживать? Итак, ЧТО ЛУЧШЕ: оставить все внутри формул или использовать ВПР с таблицами на отдельном листе? Заранее благодарен. Пример формулы: =10000000*ЕСЛИ(ЕЧИСЛО(ПОИСК("пру";G5));14; ЕСЛИ(ЕЧИСЛО(ПОИСК("звд";G5));15; ЕСЛИ(ЕЧИСЛО(ПОИСК("рвр";G5));8; ЕСЛИ(ЕЧИСЛО(ПОИСК("апу";G5));7; ЕСЛИ(ЕЧИСЛО(ПОИСК("вврв";G5));1; ЕСЛИ(ЕЧИСЛО(ПОИСК("юдл";G5));13; ЕСЛИ(ЕЧИСЛО(ПОИСК("счв";G5)); 5; ЕСЛИ(ЕЧИСЛО(ПОИСК("пуб";G5));6;ЕСЛИ(ЕЧИСЛО(ПОИСК("мип";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("счм";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("топ";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("уву";G5));9;ЕСЛИ(ЕЧИСЛО(ПОИСК("ццы";G5));10;ЕСЛИ(ЕЧИСЛО(ПОИСК("рпе";G5));11;ЕСЛИ(ЕЧИСЛО(ПОИСК("цвап";G5));12;ЛОЖЬ)))))))))))))))+1000000*ЕСЛИ(ЕЧИСЛО(ПОИСК("dde";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("sddf";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("ghbyt";G5));3; ЕСЛИ(ЕЧИСЛО(ПОИСК("dfe";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("lkj";G5));5; ЕСЛИ(ЕЧИСЛО(ПОИСК("wsdd";G5));6;ЕСЛИ(ЕЧИСЛО(ПОИСК("dcerd";G5));7;ЕСЛИ(ЕЧИСЛО(ПОИСК("jki";G5));8;0))))))))+100000*ЕСЛИ(ЕЧИСЛО(ПОИСК("®";G5));1;ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("(N,XS)";G5));ЕЧИСЛО(ПОИСК("(N, BG)";G5)));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("(MJ)";G5));3;0)))+10000*ПСТР(G5;AF5-1;1)+1000*ЕСЛИ(ПСТР(G5;AF5+1;2)="10";9;ЕСЛИ(ПСТР(G5;AF5+1;3)="2,5";5;ЕСЛИ(ПСТР(G5;AF5+1;3)="1,5";3;ЕСЛИ(ПСТР(G5;AF5+1;3)="0,5";2;ЕСЛИ(ПСТР(G5;AF5+1;4)="0,75";7;ЕСЛИ(ПСТР(G5;AF5+1;2)="16";8;ПСТР(G5;AF5+1;1)))))))+100*ЕСЛИ(ЕЧИСЛО(ПОИСК("123";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("-1";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("649";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("787";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("бел";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("жел";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("чер";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("кра";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("син";G5));5;ЕСЛИ(ЕЧИСЛО(ПОИСК("оран";G5));6;)))))))))) |
|
|
05.04.2024 07:04:46
Марка продукции является неизменной для всех вновь образованных их исходной строк. |
|||
|
04.04.2024 13:55:54
Добрый день, уважаемые форумчане. Прошу помочь в решении задачи. Требуется сформировывать сводную таблицу, в которой из каждой строки исходной таблицы формируется от одной до четырех строк. При этом |
|
|