Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA在Excel中移动图像?_Vba_Excel_Excel 2007 - Fatal编程技术网

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

如何使用VBA在Excel中移动图像?,vba,excel,excel-2007,Vba,Excel,Excel 2007,我想使用VBA将图像从excel中的一个位置移动到另一个位置 我们怎样才能做到这一点呢?如果我们走得又快又脏,需要在两张纸之间移动,那么下面的工作就完成了 Sub CutAndPasteAPicture(shapeName As String, fromSheet As String, toSheet As String, toRange As String) 'Cut and Paste Sheets(fromSheet).Shapes(shapeName).Cut Sheets(toShee

我想使用VBA将图像从excel中的一个位置移动到另一个位置


我们怎样才能做到这一点呢?

如果我们走得又快又脏,需要在两张纸之间移动,那么下面的工作就完成了

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

如果需要更改图像在给定工作表中的位置,可以使用以下方法:

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

您可以通过更改.Increment的参数来调整运动的方向和量。。。命令,例如为图像设置动画。

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

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

下面是先将图片插入Excel,然后调整图片大小的代码。稍后将图片向下或向右移动

'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