【问题标题】:How could I have image URLs in column "C" display their corresponding images in column "N" in Excel?如何让“C”列中的图像 URL 在 Excel 的“N”列中显示其对应的图像?
【发布时间】:2015-09-11 11:32:51
【问题描述】:

我有一个包含一堆列的 Excel 文件,其中一个是“ImageURL”,当然,它会将唯一的 URL 显示为文本。

我该如何设置,以便这些图像也显示在另一列中?

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

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

【问题讨论】:

  • 您不能在单元格中嵌入图像,但是您可以让图像对象引用该单元格...所以您的期望是,URL 将位于 A1 中并且相关图像将在B1?如果是这样,原生 excel 无法满足您的期望。 google.com/…
  • "虽然有一个图像对象引用了单元格"

标签: excel image vba


【解决方案1】:

好的,这可能听起来很基本(没有双关语),但根据您提供的有限信息,我认为您的问题的原因是您只是将这些语句粘贴到代码模块中而没有放入他们在一个过程中。这肯定会给你一个“无效的外部过程”编译时错误。

你必须把东西放在一个过程中——一个子或一个函数。这种情况需要一个子。试试这个:

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

【讨论】:

    【解决方案2】:

    .Pictures.Insert(stuff) 在 XL 2007 中不起作用 - 我看到了使用 *.Shapes.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
    

    最终结果是以下错误: 编译错误: 需要对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-24
      • 2011-09-12
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      相关资源
      最近更新 更多