2011-12-01 47 views
2

我有一堆Excel的文件,其中之一是「ImageURL」,當然,它顯示唯一的URL作爲文本。我怎麼能在列「C」中的圖像URL在Excel中的列「N」中顯示其相應的圖像?

我該如何設置,以便這些圖像也在另一列中描述?

我已經使用了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,所以也許,我沒有正確設置它?

+0

不能在細胞嵌入一個圖片,你可以有一個圖像對象,雖然引用的單元格... SO是你的期望,這樣的網址將在A1和相關的圖像將在B1?如果是這樣,你的期望不能滿足本地的Excel。 http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CEUQFjAC&url=http%3A%2F%2Fchannel9.msdn.com%2FForums%2FTechOff%2F260021-Excel-2003- Cant-Insert-Picture-Into-Cell-&ei = YLLXTpvBKqiqiQKl3oypCg&usg = AFQjCNHyZnUtVzN4tCPWR_2244dtQG004Q&sig2 = K6VqyS-g2HhjS7BfMjyQzw – xQbert

+0

「有一個圖像對象引用單元雖然」< - 你可以擴展這個?這可能是一個有用的選擇。 – oxo

回答

2

好的,這可能聽起來很基本(沒有雙關語意),但基於您提供的有限信息,我認爲問題的原因是您剛剛在代碼模塊中粘貼了這些語句,而沒有把它們放入程序中。這肯定會給你一個「無效的外部過程」編譯時錯誤。

你必須把東西放入一個過程 - 一個Sub或者一個Function。這個案例需要一個Sub。試試這個:

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 
1

.Pictures.Insert(東西)沒有在2007年XL工作 - 我見過的建議使用* .Shapes.AddPicture()代替。

問題在於它需要一個用於filePath的字符串,而我對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 

最終的結果是以下錯誤: 編譯錯誤: 所需的對象

相關問題