Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Изменение пути гиперссылок Excel2010

Ответить
Настройки темы
2010 - Изменение пути гиперссылок Excel2010

Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый день уважаемые форумчане!
Проблема в следующем, имеется файлик Excel с множеством гиперссылок которые ссылаются на файлы в папке (\\10.52.1.1\Стройки\Проекты), возникла острая необходимость подпапку "Проекты" вытащить из папки "Стройки" и поместить в корень (\\10.52.1.1\Проекты), помогите с написанием скрипта по изменению гиперссылок во всем документе. Просьба не отправлять в гугл и прочие форумы, все что было найдено в сети, не сработало. Заранее спасибо за помощь.

Отправлено: 08:55, 31-10-2016

 

Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


oleg_nojab, попробуйте код ниже. Код заменит ссылки на одном активном листе.
Предварительно сделайте резервную копию вашей книги, во избежание потери данных.
Код
Код: Выделить весь код
Public Sub HL_repl()
    Dim HLobj As Hyperlink
    For Each HLobj In ActiveSheet.Hyperlinks
        HLobj.Address = Replace(HLobj.Address, "\\10.52.1.1\Стройки\Проекты", "\\10.52.1.1\Проекты")
    Next HLobj
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:30, 31-10-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


На WSH (не проверялось):
Код: Выделить весь код
Option Explicit

Const xlPart = 2

Dim objWorkSheet


With WScript.CreateObject("Excel.Application")
	With .Workbooks.Open("C:\Мои проекты\0023\Книга1.xls")
		.Parent.DisplayAlerts = False
		
		For Each objWorkSheet In .Worksheets
			objWorkSheet.UsedRange.Replace "\\10.52.1.1\Стройки\Проекты", "\\10.52.1.1\Проекты", xlPart
		Next
		
		.Parent.DisplayAlerts = True
		
		.Save
		.Close
	End With
	
	.Quit
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:39, 31-10-2016 | #3


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата a_axe:
Public Sub HL_repl()
Dim HLobj As Hyperlink
For Each HLobj In ActiveSheet.Hyperlinks
HLobj.Address = Replace(HLobj.Address, "\\10.52.1.1\Стройки\Проекты", "\\10.52.1.1\Проекты")
Next HLobj
End Sub »
Выдает ошибку "Run-time error 13: Type mismatch"

Отправлено: 11:55, 31-10-2016 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата oleg_nojab:
Выдает ошибку "Run-time error 13: Type mismatch" »
Покажите скриншот вместе с данным кодом в окне редактора VBA. Было бы неплохо также приложить образец Рабочей книги с гиперссылками, упаковав его в архив.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:02, 31-10-2016 | #5


Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


Цитата Iska:
На WSH (не проверялось): »
Iska, это в редакторе VBA нужно запускать? Не то чтобы я что-нибудь понял, просто хоть понять, в какую сторону идти...

Отправлено: 14:36, 31-10-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата a_axe:
Iska, это в редакторе VBA нужно запускать? »
Нет. Сохранить в файл с расширением .vbs и запустить двойным щелчком из Проводника (хост WScript.exe). Я лично предпочитаю консоль Far Manager'а, посему у меня по умолчанию («CScript.exe //H:CScript») используется консольный хост CScript.

Ваш код, кстати, как я полагаю, более правильный.

Отправлено: 17:33, 31-10-2016 | #7


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать



Пробую на тестовом файле, ошибка сохраняетсяСнимок1.JPG

Отправлено: 07:46, 01-11-2016 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


oleg_nojab, к сожалению, не видно место возникновения ошибки. Упакуйте Ваш тестовый файл в архив и приложите к сообщению, либо выложите на RGhost или Яндекс.Диск.

Отправлено: 08:14, 01-11-2016 | #9


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать



Всем спасибо, проблема решена, скрипт взят с сайта www.vba-excel.ru
Замена гиперссылок.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:15, 02-11-2016 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Изменение пути гиперссылок Excel2010

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
8 / 2012 - изменение пути к install.wim joystick8000 Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 5 16-04-2016 21:59
VBS/WSH/JS - Изменение пути в REG файле gen0m.rsw Скриптовые языки администрирования Windows 7 15-10-2014 11:53
[решено] Изменение пути установки (msi) Freez Автоматическая установка приложений 2 25-02-2010 14:42
[решено] Изменение пути к профилю пользователя AnaStas Microsoft Windows 2000/XP 2 13-11-2006 11:56
Изменение пути к CD Disconnect Microsoft Windows 95/98/Me (архив) 1 29-09-2004 21:27




 
Переход