Как я могу заставить URL-адреса изображений в столбце " C "отображать соответствующие изображения в столбце" N " в Excel?
У меня есть файл Excel с кучей столбцов, один из которых - "ImageURL", который, конечно же, отображает уникальные URL-адреса в виде текста.
Как я могу настроить его таким образом, чтобы эти изображения также были изображены в другой колонке?
Я использовал следующий макрос , но я получаю ошибку компиляции "недопустимая внешняя процедура".
Dim url_column As Range
Dim image_column As Range
Set url_column = Worksheets(1).UsedRange.Columns("C")
Set image_column = Worksheets(1).UsedRange.Columns("N")
Dim i As Long
For i = 1 To url_column.Cells.Count
With image_column.Worksheet.Pictures.Insert(url_column.Cells(i).Value)
.Left = image_column.Cells(i).Left
.Top = image_column.Cells(i).Top
image_column.Cells(i).EntireRow.RowHeight = .Height
End With
Next
Я, к сожалению, новичок в VBA, так что, возможно, я не настроил его правильно?
2 ответа:
Хорошо, это может показаться довольно простым (без каламбура), но, основываясь на ограниченной информации, которую вы предоставили, я думаю, что причина вашей проблемы заключается в том, что вы просто вставили эти операторы в свой модуль кода и не поместили их в процедуру. Это, безусловно, даст вам ошибку компиляции "недопустимая внешняя процедура".
Вы должны поместить материал в процедуру-либо суб, либо функцию. Это дело требует замены. Попробуйте это:
Sub PlaceImageInCell() Dim url_column As Range Dim image_column As Range Set url_column = Worksheets(1).UsedRange.Columns("A") Set image_column = Worksheets(1).UsedRange.Columns("B") Dim i As Long For i = 1 To url_column.Cells.Count With image_column.Worksheet.Pictures.Insert(url_column.Cells(i).Value) .Left = image_column.Cells(i).Left .Top = image_column.Cells(i).Top image_column.Cells(i).EntireRow.RowHeight = .Height End With Next End Sub
.Картины.Insert (stuff) не работает в XL 2007 - и я видел предложения по использованию *.Формы.Вместо этого AddPicture ().
Проблема в том, что для этого требуется строка для пути к файлу, и я недостаточно знаком с VBA, чтобы сделать эту работу.Sub InsertImage() Dim urlColumn As Range Dim imgColumn As Range Dim fp as String Set urlColumn = Worksheets(1).UsedRange.Columns("A") Set imgColumn = Worksheets(1).UsedRange.Columns("B") Dim i As Long For i = 2 To urlColumn.Cells.Count With imgColumn.Worksheet.Shapes.AddPicture(fp, msoTrue, msoTrue, 1, 1, 12, 12) End With Next End Sub
Конечным результатом является следующая ошибка: ошибка компиляции: Объект