简体   繁体   English

如何使用VBA在Excel中移动图像?

[英]How to move image in Excel using VBA?

I want to move image from one location in excel to another using VBA. 我想使用VBA将图像从excel中的一个位置移动到另一个位置。

How can we do that? 我们该怎么做?

If you need to change the position of the image within a given worksheet, you can use something like this: 如果需要在给定的工作表中更改图像的位置,则可以使用以下方法:

ActiveSheet.Shapes.Range(Array("Picture 1")).Select
Selection.ShapeRange.IncrementLeft 100

You can adjust the direction and amount of motion by changing the parameters of the .Increment... command, to animate an image for example. 您可以通过更改.Increment ...命令的参数来调整运动的方向和量,例如对图像进行动画处理。

If we are going quick and dirty and need to move between sheets the following works 如果我们又快又脏又需要在图纸之间移动,请执行以下操作

Sub CutAndPasteAPicture(shapeName As String, fromSheet As String, toSheet As String, toRange As String)
'Cut and Paste
Sheets(fromSheet).Shapes(shapeName).Cut
Sheets(toSheet).Paste Sheets(toSheet).Range(toRange)
End Sub

Sub Example()
  CutAndPasteAPicture "Picture 1", "Sheet1", "Sheet2", "D2"
End Sub

另一个示例:垂直移动图片以与特定行对齐

Sheets(1).Shapes("Picture 1").Top = Sheets(1).Rows(24).Top

Here is the code to first insert picture to Excel and then adjust or resize the Picture. 这是首先将图片插入Excel,然后调整图片或调整图片大小的代码。 Later move the Picture towards down or right 稍后将图片向下或向右移动

'Insert the Picture from the path if its not present already

Set myPict = Thisworkbook.sheets(1).Range("A1:B5").Parent.Pictures.Insert(ThisWorkbook.Path & "\" & "mypic.jpg")

'Adjust the Picture location
    myPict.Top = .Top
    myPict.Width = .Width
    myPict.Height = .Height
    myPict.Left = .Left
    myPict.Placement = xlMoveAndSize
    'myPict.LockAspectRatio = msoTriStateMixed

'Change the width of the Picture
    myPict.Width = 85
'change the Height of the Picutre
    myPict.Height = 85
End With

'Select the Picutre
myPict.Select

'Move down the picture to 3 points. Negative value move up

Selection.ShapeRange.IncrementTop 3


'Move towards right upto 5 points. Negative value moves towards right
Selection.ShapeRange.IncrementLeft 5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM