我在使用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
答案 0 :(得分:0)
Windows“记住”图片的方向,因此屏幕左上角的内容实际上可能不是图片的左上角。您需要检查图片的.Rotation
属性。如果它被旋转(即,不是0),则需要相应地调整代码。例如:
If myObj.Rotation = 0 Or myObj.Rotation = 180 Then
.Height = 293
Else
.Width = 293
End If
编辑:忘记仅考虑它是颠倒的