我怎么可能在列“C”中的图像URL在Excel中的列“N”中显示其相应的图像?

我有一大堆列的Excel文件,其中之一是“ImageURL”,当然,它显示唯一的URL作为文本。

我怎么能设置这些图像也被描述在另一列?

我使用了下面的macros ,但是我得到一个“无效的外部过程”编译错误。

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新手,或许我没有正确设置它?

好吧,这可能听起来很基本(没有双关语),但基于你提供的有限的信息,我认为你的问题的原因是你刚刚粘贴这些语句在你的代码模块,并没有把它们放在一个程序。 这肯定会给你一个“无效的外部过程”编译时错误。

你必须把东西放在一个过程中 – 一个Sub或者一个Function。 这个案子要求一个小组。 尝试这个:

 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 

.Pictures.Insert(东西)在XL 2​​007中不起作用 – 我已经看到build议使用* .Shapes.AddPicture()来代替。

问题是,它需要一个string的文件path,我不熟悉的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 

最终结果如下错误:编译错误:对象必需