У меня есть следующие ссылки на Excel в документе Word:
Проблема в том, что при внесении изменений изменяется версия документа как на указанном листе Excel, так и в документе Word.
В связи с этим мне необходимо обновить путь ссылки.
Я хотел бы сделать это с помощью макроса VBA, и вот что у меня получилось:
Sub Replace_Link()
Dim iShp As InlineShape
Dim exWb As Excel.Workbook
For Each iShp In ActiveDocument.InlineShapes
With ActiveDocument
Set exWb = objExcel.Workbooks.Open(.Path & "\" & Replace$(.Name, ".docm", ".xlsm"))
End With
With iShp
If Not .OLEFormat Is Nothing Then
If Split(.OLEFormat.ClassType)(0) = "Excel" Then
.LinkFormat.SourcePath = exWb
End If
End If
End With
Next
End Sub
Я получаю 'User defined type not defined' для 'Dim exWb As Excel.Workbook'. Я также уверен, что мне понадобится больше кода для включения ссылок типа 'Worksheet', которые нельзя обновить с помощью команды 'inlineShape'.
Кто-нибудь может с этим помочь? TIA
решение1
Добавили ли вы ссылку в свой проект VBA на «Библиотеку объектов Microsoft Excel 14.0»? (Примечание: 14.0 может отличаться в зависимости от установленной версии Excel)
В окне VBA в меню Tools выберите References, чтобы открыть диалоговое окно References - Project. Затем прокрутите список вниз и найдите библиотеку Microsoft Excel, отметив ее галочкой (она должна появиться в верхней части списка ссылок).