Я хочу использовать Excel VBA для создания ссылок в документе Word на основе диапазонов ячеек Excel. Но когда он достигает линии hyperlinks.add
, я получаю "run-time error ‘450’: Wrong number of arguments or invalid property assignment"
.
Практически точно такой же код прекрасно работает в Word VBA. Я не понимаю сообщение об ошибке. Хотя я хорошо знаком с Excel VBA, выбор и диапазоны Word VBA меня смущают.
Я сделал примеры кода ниже, используя строки вместо диапазонов, в каждом случае код успешно вставляет текст в конец документа test.docx
, но, хотя Word VBA вставляет текст со ссылкой ниже этого, код Excel VBA завершается ошибкой при hyperlinks.add
строка.
Вот код Excel VBA, который не работает:
Sub wordLinkFromExcelRanges()
Dim wApp As Word.Application, wDoc As Word.Document
Dim linkText As String, link As String
linkText = "google"
link = "http://www.google.com"
Set wApp = New Word.Application
wApp.Visible = True
Set wDoc = wApp.Documents.Open("C:\test\test.docx")
With wApp.Selection
.EndKey 6, 0 'go to end of doc
.TypeParagraph
.TypeText "text without link"
.TypeParagraph
wDoc.Hyperlinks.Add Anchor:=Selection.Range, Address:=link, _
SubAddress:="", ScreenTip:="", TextToDisplay:=linkText
End With
wApp.Quit
Set wDoc = Nothing
Set wApp = Nothing
End Sub
Вот код Word VBA, который работает:
Sub wordLinkFromWord()
Dim wD As Document
Dim linkText As String, link As String
linkText = "google"
link = "http://www.google.com"
Set wD = ActiveDocument
With Selection
.EndKey 6, 0
.TypeParagraph
.TypeText "text without link"
.TypeParagraph
wD.Hyperlinks.Add Anchor:=Selection.Range, Address:=link, _
SubAddress:="", ScreenTip:="", TextToDisplay:=linkText
End With
End Sub
Спасибо!