Ошибка при вставке изображения с использованием переменной для Selection.InlineShapes.AddPicture - PullRequest
0 голосов
/ 04 марта 2020

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

enter image description here

Ошибка:

Ошибка времени выполнения '5152':

Это недопустимое имя файла.
Попробуйте выполнить одно или несколько из следующих действий:
* Проверьте путь, чтобы убедиться, что он был введен правильно,
* Выберите файл из списка файлов и папки.

Код:

Sub InsertJPGs()
    For Each singleLine In ActiveDocument.Paragraphs
        Dim Value As Variant
        Dim imageName As String
        Options.DefaultFilePath(wdDocumentsPath) = "d:\Downloads\ReportImages\"
        originalLineText = singleLine.Range.Text
        lineText = singleLine.Range.Text
        If InStr(lineText, ".jpg") <> 0 Then
            singleLine.Range.Select
            rangeText = singleLine.Range.Text
            imageName = rangeText
            imageName = "D:\Downloads\ReportImages\" & rangeText
            'imageName = "D:\Downloads\ReportImages\PictureImportTest_ATTICSkylight#1#_img2.jpg"
            Selection.InlineShapes.AddPicture FileName:= _
                imageName, LinkToFile:=True, SaveWithDocument:=True
        End If
        If InStr(lineText, "[[[IMAGE LIST]]]") <> 0 Then
            Exit For
        End If
    Next singleLine
End Sub

1 Ответ

0 голосов
/ 05 марта 2020

Попробуйте:

Sub Demo()
Application.ScreenUpdating = False
Dim FlNm As String: Const StrPath As String = "d:\Downloads\ReportImages\"
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "<[! ^t^l^13]@.[Jj][Pp][Gg]>"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchWildcards = True
    .Execute
  End With
  Do While .Find.Found
    FlNm = .Duplicate.Text
    .Text = vbNullString
    .InlineShapes.AddPicture StrPath & FlNm, False, True, .Duplicate
    .Collapse wdCollapseEnd
    .Find.Execute
  Loop
End With
Application.ScreenUpdating = True
End Sub

Если вы хотите сохранить имена файлов в документе, удалите или закомментируйте:

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