2017-12-28 27 views
0

AB32 값에 따라 AH32 셀에 그림을 자동으로 삽입하려고합니다.Excel - VBA의 셀 값을 사용하여 자동으로 사진 변경하기

그림을 삽입 할 수 있지만 값에 따라 달라지지 않습니다. AB32. 어떻게 해결할 수 있습니까?

코드 :

Sub Picture() 

    Range("AH32").Select 

    Dim picname As String 

    If Range("AB32").Value < 85# Then 

     picname = "C:\Users\20149308\Desktop\sucess\images" & ".png" 'Link to the Picture 
     ActiveSheet.Pictures.Insert(picname).Select 

     With Selection 

      .Left = Range("AH32").Left 
      .Top = Range("AH32").Top 
      .ShapeRange.LockAspectRatio = msoFalse 
      .ShapeRange.Height = 80# 
      .ShapeRange.Width = 80# 
      .ShapeRange.Rotation = 0# 

     End With 

    ElseIf Range("AB32").Value >= 85# Then 

     picname = "C:\Users\20149308\Desktop\sucess\succ" & ".jpg" 'Link to the Picture 
     ActiveSheet.Pictures.Insert(picname).Select 

     With Selection 

      .Left = Range("AH32").Left 
      .Top = Range("AH32").Top 
      .ShapeRange.LockAspectRatio = msoFalse 
      .ShapeRange.Height = 80# 
      .ShapeRange.Width = 80# 
      .ShapeRange.Rotation = 0# 

     End With 

    End If 

    Range("AH32").Select 

    Application.ScreenUpdating = True 

    Exit Sub 

ErrNoPhoto: 
    MsgBox "Unable to Find Photo" 'Shows message box if picture not found 
    Exit Sub 

End Sub 

답변

0

는 여기에 몇 가지 기본적인 오류 검사와 더 압축 된 형태를 작성하는 방법 중 하나입니다.

Option Explicit 

Sub Picture() 

    Application.ScreenUpdating = True 

    Dim testRange As Range 
    Dim picname As String 

    Set testRange = ActiveSheet.Range("AB32") 

    If IsEmpty(testRange) Then 
     MsgBox "No value in cell AB32" 
     Exit Sub 
    End If 

    Select Case True 

     Case Not IsNumeric(testRange.Value2) 

      MsgBox "Value in cell AB32 is not numeric" 
      Exit Sub 

     Case testRange.Value2 < 85# 

      picname = "C:\Users\20149308\Desktop\sucess\images" & ".png" 

     Case testRange.Value2 >= 85# 

      picname = "C:\Users\20149308\Desktop\sucess\succ" & ".jpg" 

    End Select 

    On Error GoTo ErrNoPhoto 

    ActiveSheet.Pictures.Insert(picname).Select 

    With Selection 

     .Left = Range("AH32").Left 
     .Top = Range("AH32").Top 
     .ShapeRange.LockAspectRatio = msoFalse 
     .ShapeRange.Height = 80# 
     .ShapeRange.Width = 80# 
     .ShapeRange.Rotation = 0# 

    End With 

    Application.ScreenUpdating = True 

    Exit Sub 

ErrNoPhoto: 
    MsgBox "Unable to Find Photo" 'Shows message box if picture not found 
    Exit Sub 

End Sub 
+0

출력을 얻을 수있는 okie – renjana

0

Camera을 사용하여 VBA없이이 작업을 수행 할 수 있습니다. 파일을 선택하고 옵션리본 사용자 지정 리본을 선택하고 리본에 카메라 아이콘을 추가하여 선택할 수 있습니다.

  • 각 그림이 셀의 경계 내에 놓 이도록 빈 워크 시트를 만들고 열 너비/행 높이를 조정하십시오 (예 : B2 및 B4 사용).
  • 이러한 셀 중 하나를 선택하고 camera 아이콘을 클릭하면 사진을 찍을 수 있습니다.
  • 보고 시트로 전환하고 클릭하여 방금 찍은 사진을 붙여 넣으십시오. 원래 그림 프레임 내에서 클릭 한 셀의 그림이 회전하고 크기를 조정할 수있는 것을 볼 수 있습니다.
  • 두 그림을 빈 워크 시트의 셀에 붙여 넣습니다. 보고 시트의 액자에 이제 클릭 한 셀에있는 그림이 표시됩니다.
  • 이 수식을 사용하여 명명 된 범위를 만듭니다 (시트 이름을 적절하게 조정하십시오) :
    =IF(Sheet1!$AB$32<85,Sheet2!$B$2,Sheet2!$B$4) - 여기서 절대 참조가 중요합니다.
    범위는 DisplayImage입니다.
  • 그림 프레임을 선택하고 수식 입력 줄의 수식을 =DisplayImage으로 변경하십시오.

  • 이제 이미지는 AB32 셀의 값을 기반으로 업데이트됩니다.