Excel VBA纵向模式图片的问题AddPicture

时间:2016-10-12 16:39:21

标签: image vba excel-vba excel

我在使用VBA以纵向模式插入图片时遇到问题。如果图片处于横向模式,则图片将插入到B列中的相关形状中。但是,如果图片是纵向的,则图片偏移25列到AA列。任何帮助是极大的赞赏!

Sub cmdInsert1_Click()

Dim myPicture As String, MyObj As Object

Range("b5").Select

myPicture = Application.GetOpenFilename("Pictures (*.gif; *.jpg; *.bmp; *.tif),*.gif; *.jpg; *.bmp; *.tif", , "Select Picture to Import")

If myPicture = "False" Then Exit Sub

Set MyObj = ActiveSheet.Shapes.AddPicture(myPicture, False, True, Range("B5").Left, Range("B5").Top, -1, -1)

With MyObj
    .Height = 293
    .Locked = False
End With

Set MyObj = Nothing

End Sub

1 个答案:

答案 0 :(得分:0)

Windows“记住”图片的方向,因此屏幕左上角的内容实际上可能不是图片的左上角。您需要检查图片的.Rotation属性。如果它被旋转(即,不是0),则需要相应地调整代码。例如:

If myObj.Rotation = 0 Or myObj.Rotation = 180 Then 
    .Height = 293
Else
    .Width = 293
End If

编辑:忘记仅考虑它是颠倒的