Перемещение гиперссылки из Excel в документ Word и вставка в указанный диапазон c - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь написать макрос, который берет информацию из листа Excel и открывает и заполняет уже существующий шаблон электронной почты Word. Я хотел, чтобы информация с каждого листа была go в указанном разделе этого документа, и каждая строка заполняла части предложения. Мне удалось сделать это успешно, реализовав поиск и замену этих циклов для каждой строки документа Excel.

Однако гиперссылки проходят только как текст и, насколько я понимаю, не могут быть сохранены как объект и затем используется для замены текста, например строкового содержимого ячеек. Впоследствии я попытался использовать функцию Hyperlinks.Add, и мой код успешно переносит гиперссылки из каждой строки в документ, но я не могу контролировать, где в документе они размещены. Насколько я понимаю, это может быть связано с выражением перед Hyperlinks.Add и тем, что находится в привязке.

Цель состоит в том, чтобы информация передавалась построчно с включенными гиперссылками. Ie.

Содержимое ячейки (A1) «Ручной текст» Гиперссылка из ячейки (B1)

Содержимое ячейки (A2) «Ручной текст» Гиперссылка из ячейки (B2) .. .et c

Я новичок в VBA, поэтому заранее извиняюсь за любые дублирования или неуклюжести, любые советы будут большим подспорьем.

    Option Explicit
Sub CreateWordDocuments()
Dim CustRow1, CustCol1, LastRow1, TagName1, TagValue1 As String
Dim DocLoc, TagName, TagValue, TemplName, FileName As String
Dim WordApp        As Word.Application: Set WordApp = New 
Word.Application
Dim WordDoc        As Word.Document
Dim WordContent As Word.Range
Dim WordTempLoc As FileDialog


Set WordTempLoc = Application.FileDialog(msoFileDialogFilePicker)
With WordTempLoc
    .Title = "Select Word file to attach"
    .Filters.Add "Word Type Files", "*.docx,*.doc", 1
    If .Show <> -1 Then GoTo NoSelection
    DocLoc = .SelectedItems(1)
End With
NoSelection:
 WordApp.Visible = True
 Set WordDoc = WordApp.Documents.Open(FileName:=DocLoc, 
ReadOnly:=False) 'Open Template
 Dim linkText As String
 Dim link As String


 LastRow1 = Worksheets("pipeline.gs.closed-or- 
cancelle").Range("F9999").End(xlUp).Row
  TagName1 = "PIPELINECLOSED" 'Tag Name

  For CustRow1 = 2 To LastRow1
        linkText = Worksheets("pipeline.gs.closed-or- 
cancelle").Cells(CustRow1, "J")
        link = Worksheets("pipeline.gs.closed-or- 
 cancelle").Cells(CustRow1, "O")
        TagValue1 = Worksheets("pipeline.gs.closed-or- 
cancelle").Cells(CustRow1, "G") & " Manual Text"
        With WordApp.Selection.Find
             .Execute FindText:=TagName1

Код ниже

             WordDoc.Hyperlinks.Add Anchor:=WordApp.Selection.Range, 
Address:=link, SubAddress:="", ScreenTip:="", TextToDisplay:=linkText

^^

        End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...