2010 - Изменение пути гиперссылок Excel2010

Аватара пользователя
oleg_nojab

2010 - Изменение пути гиперссылок Excel2010

Сообщение oleg_nojab »

Добрый день уважаемые форумчане!

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

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение Iska »

«On Error Resume Next» надо выкинуть (и вообще забыть его использование подобным образом как страшный сон). Перед InputBox проверять наличие выделения (более одной ячейки) и использовать его в качестве умолчания. Остальное, в принципе, сойдёт.
Аватара пользователя
Iska

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение Iska »

На 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
Аватара пользователя
a_axe

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение a_axe »

Цитата 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
2010 - Изменение пути гиперссылок Excel2010




Выдает ошибку "Run-time error 13: Type mismatch"
Аватара пользователя
oleg_nojab

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение oleg_nojab »

Цитата oleg_nojab:



Выдает ошибку "Run-time error 13: Type mismatch"
2010 - Изменение пути гиперссылок Excel2010




Покажите скриншот вместе с данным кодом в окне редактора VBA. Было бы неплохо также приложить образец Рабочей книги с гиперссылками, упаковав его в архив.
Аватара пользователя
Iska

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение Iska »

Цитата Iska:



На WSH (не проверялось):
2010 - Изменение пути гиперссылок Excel2010




Iska, это в редакторе VBA нужно запускать? Не то чтобы я что-нибудь понял, просто хоть понять, в какую сторону идти...
Аватара пользователя
a_axe

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение a_axe »

Цитата a_axe:



Iska, это в редакторе VBA нужно запускать?
2010 - Изменение пути гиперссылок Excel2010




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



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

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение Iska »

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

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение oleg_nojab »

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

Re: 2010 - Изменение пути гиперссылок Excel2010

Сообщение oleg_nojab »

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

[Расширение jpg было запрещено, вложение больше недоступно.]

Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»