我正在创建一个包含图片 url(例如 www.myDomain.com/myImage.jpg
)的 csv 文件。
我该如何让 Excel 渲染这张图片?
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
由于Excel的行为在多年间 显然发生了变化,因此您可能需要明确指定更多参数来调用Insert
:
对于来到这里的人们。不同版本的Excel以不同的方式处理此请求,Excel 2007将图片作为对象插入,即将其嵌入工作簿中。Excel 2010将其作为链接插入,如果您计划将其发送给任何人,则会遇到麻烦。您需要更改插入以指定它是嵌入的:
Insert(Filename:= <path>, LinkToFile:= False, SaveWithDocument:= True)
=IMAGE("http://efdreams.com/data_images/dreams/lion/lion-03.jpg")
我曾经遇到过同样的问题,我的解决方案是:
在Excel中,图片将保持原始大小,但始终从适当的行开始,因此只需选择所有内容并更改所有图片的宽度或高度即可。如果仅按行高更改高度,则可以使所有内容都有序且位置正确。
Workbook_BeforeSave
中删除插入的图片。 - GSergsub
。随意命名它。将代码粘贴在Sub
和End Sub
之间。如果需要,调整Worksheets(1)
部分以适合您的需求。运行。 - GSerg