Обновление вставленной ссылки на внешнюю таблицу в VBA

Я пытаюсь перехватить процесс вставки внешней ссылки. Я хочу изменить источник ссылки на внутренний веб-сайт.

Формула выглядит так:

='[filename.xlsx]Sheet1'!$B$7 

Который я хочу изменить:

 ='http://server/site/[filename.xlsx]Sheet1'!$B$7 

Этот код делает трюк:

 Dim s As String s = ActiveCell.FormulaR1C1 If Len(s) < 3 Then Exit Sub Dim i As Integer i = InStr(s, "[") If i > 0 Then s = "='X:\directory\[" + Mid(s, i + 1) ActiveCell.FormulaR1C1 = s End If 

Я попытался добавить до выше

 ActiveSheet.Paste Link:=True 

Но он не проходит ссылку, но вместо этого формула вставлена. Я просмотрел извлечение ссылки из буфера обмена, но мне не повезло с Application.ClipboardFormats.

Любые идеи были бы хорошы.

Попробуйте изменить:

 ActiveCell.FormulaR1C1 = s 

в

 ActiveCell = s ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=s 

Таким образом, вы только ставите значение, которое хотите увидеть, а затем добавляете гиперссылку туда, где хотите ее указать! Нет причин бороться с ОЧЕНЬ придирчивой Excel. .Paste или .PasteSpecial .

Interesting Posts

Возможно ли использование apache poi для загрузки данных из открытого файла excel, который постоянно обновляется?

vbScript открывает excel, но не загружает макрос / модули?

Powershell – выводит три оператора выбора на три листа EXCEL

Excel Autofilter все, кроме значения переменной

одна и та же дата-группа времени, хранящаяся в разных двухместных номерах

excel макросы для вставки нескольких столбцов данных под одной колонкой

Как добраться до области кода ThisWorkbook

Как удалить невидимый символ прерывания строки

Заменить текст Данные из двух разных столбцов

Как открыть Excel сразу после его создания в .NET?

Запуск макроса при изменении ячейки

Автоматическое добавление данных из нескольких книг в один

Адресация OLE-объекта в ppt через excel иногда возвращает ошибку времени выполнения 430

Формула массива в Excel, выполненная через VBA Без или без .ArrayFormula для динамического диапазона

Excel: форматирование даты

Давайте будем гением компьютера.