2015-06-08 14 views
0

我在工作表1上有一個帶有多個單元格(B7:L7,B11:L11和B13:L13)的表格和一個單獨的3-4個不同圖片表(Sheet 2)。我試圖根據它們的值爲每個單元調用不同的圖片(例如,如果單元= 2,它們應該顯示另一個圖片中的一個圖片,如果單元格= 3,它們應該顯示不同的圖片等)。作爲IF結果調用圖片的VBA代碼公式

我試過這100種不同的方法,並保持醒目,所以任何輸入將不勝感激!

編輯:包括代碼- 就像我說的,我已經完成了這100個不同的方法。這是我最近的嘗試。雖然可能比必要的方式更笨重,但它對一個單元格很好,但我不確定如何編輯它以使其適用於整個範圍(除了單獨爲每個單元格複製和粘貼)。我還想添加一些東西將其集中在單元格中,但也沒有運氣。

Sub InsertPicture() 
Dim PicCell As Range 

Set PicCell = Range("B7") 

If PicCell = 2 Then 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Shapes.Range(Array("Picture2")).Select 
    Selection.Copy 
    Worksheets("Sheet1").Activate 
    Range("B7").Select 
    Sheets("Sheet1").Pictures.Paste 
ElseIf PicCell = 3 Then 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Shapes.Range(Array("Picture3")).Select 
    Selection.Copy 
    Worksheets("Sheet1").Activate 
    Range("B7").Select 
    Sheets("Sheet1").Pictures.Paste 
ElseIf PicCell = 4 Then 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Shapes.Range(Array("Picture4")).Select 
    Selection.Copy 
    Worksheets("Sheet1").Activate 
    Range("B7").Select 
    Sheets("Sheet1").Pictures.Paste 
ElseIf PicCell = 5 Then 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Shapes.Range(Array("Picture5")).Select 
    Selection.Copy 
    Worksheets("Sheet1").Activate 
    Range("B7").Select 
    Sheets("Sheet1").Pictures.Paste 
ElseIf PicCell = 6 Then 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Shapes.Range(Array("Picture6")).Select 
    Selection.Copy 
    Worksheets("Sheet1").Activate 
    Range("B7").Select 
    Sheets("Sheet1").Pictures.Paste 
Else: MsgBox ("No picture at this time") 
End If 
+0

請附上您的示例代碼和突出問題的一部分。最好的問候, –

+2

考慮添加代碼,所以我們可以幫助你更容易 –

+0

只需添加代碼!我不確定要添加什麼,因爲我在這方面做了很多嘗試。我現在已經包含了最新的版本。 – sfowler38

回答

0

讓我們從這個開始,看看我們是否正在接近你正在尋找的東西。

我的工作表Sheet1看起來是這樣的: enter image description here

Sheet2中剛好有這樣的圖片: enter image description here


代碼:(簡化和改進,但沒有錯誤檢查)

Sub InsertPicture() 
    Dim PicSht As Worksheet 
    Set PicSht = Worksheets("Sheet2") 

    Dim mySheet As Worksheet 
    Set mySheet = Worksheets("Sheet1") 

    Dim cell As Range 

    For Each cell In mySheet.Range("B7:L7") 
     Select Case cell 
      Case 2 To 6 
       PicSht.Shapes("Picture" & cell.Value).Copy 
       cell.Select 
       mySheet.Pictures.Paste 

      Case Else 
       MsgBox ("No picture at this time") 
     End Select 
    Next cell 
End Sub 

結果在Sheet1:

enter image description here