Страницы: 1
RSS
Как сделать так, чтобы макрос работал на всех ПС?
 
Здравствуйте!
Есть файл с макросом, который позволяет вставлять картинки из рядомлежащей папки в ячейки, кликая по гиперссылкам.  Проблема: система работает только на избранных компьютерах. А надо, чтобы у 100% вне зависимости от ОС.  Зиповать файл вместе с папкой, где картинки, не помогает: у одного пользователя после разархивации все работает,  у другого - нет:(
 
Цитата
Есть файл с макросом,(
А у нас нет, и сказать что-либо конкретное нет возможности
 
сорри - надеялась, что есть некое волшебное общее правило передачи файлов с макросами.
пример выкладываю
 
Файл, к сожалению, посмотреть не могу, т.к. у меня 2003 Excel.
Думаю, что все дело как прописан путь к папке, где лежат файлы .ipg
 
файл в другом формате весит сильно больше разрешенных здесь 100 км. (подскажите, как сохранить)

путь к папке прописан так:    

ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name
   sAddress = Application.GetOpenFilename(Title:="Выберите файл")

Эта папка "Банк изображений" всегда лежит рядом с эксель-файлом
 
Заархивируйте файл .xls вместе с папкой, где изображения
Изменено: Kuzmich - 06.02.2013 16:09:09
 
Может, эта программа для вставки картинок подойдет?
http://excelvba.ru/programmes/PastePictures
Она и из папки вставляет картинки, и со ссылками работает

Одну кнопку нажать - и всё вставится.
 
заархивировать, как я писала выше, не помогает - у одних нормально, у других ссылки перестают вести туда, куда надо.
 
Цитата
Марина пишет:
у одного пользователя после разархивации все работает, у

Разные ОС?

А посмотреть в Debug строку
Код
ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name
?
Может пути в Dos формате прописываються, аля
Цитата
C:\Prograм~\Базаизо~\
?

это как раз может приводить к подобному поведению
Изменено: SkyShark - 06.02.2013 16:55:44
 
а где проверить? и как починить?
 
Цитата
Марина пишет:

а где проверить? и как
починить?

Ну как вариант на одном из ПК на котором не работает.

открываете файл, заходить в редактор VBA (Alt+F11)
находите строку
Код
ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name


и ставите на ней breakpoint, дальше в дебагере смотрите чему равно "ThisWorkbook.Path & "\Банк изображений\" & Target.Name"
 
Для надёжности я бы поменял "\Банк изображений\" на "\Pics\" - т.к. тут ещё и кириллица может где-то не понравиться, и пробел, и длина строки (как выше упомянуто)...
 
ставить что? и где дебагер?
простите, сами мы неместные:)
 
Находите в коде это строку, выделяете мышкой
Код
ThisWorkbook.Path & "\Банк изображений\" & Target.Name
, без ChDir!!!, нажимаете на выделенном правой кнопкой мышки и выбираете Add Watch... В появившемся окне выбираете Break then Value Changes.

После этого всего возращаетесь на лист и кликаете по гиперссылки, дальше думаю будет все видно.

и еще вопрос.... А диск всегда один и тот же? ..... можно еще по пробовать перед ChDir, использовать ChDrive

Код
ChDrive (Left(ThisWorkbook.Path, 1))
    ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name
Изменено: SkyShark - 06.02.2013 17:20:19
Страницы: 1
Читают тему
Наверх