excel 用vba粘贴指定范围内的图片

lyfkaqu1  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(422)

我有下面的代码。我想粘贴这个复制的图片到一个范围,我在目的地工作表中选择。然而,我只知道如何设置位置通过选择。顶部,。左,。宽度,。高度。有没有办法粘贴这个图片在选定的范围,如G30:J:30?

Windows(osman).Activate

   Sheets("Overview").Range("A30:D37").CopyPicture

  Dim DestinationSheet As Worksheet
  Set DestinationSheet = Workbooks(anan).Sheets("Eingabefeld")

   DestinationSheet.Paste

  Dim pastedPic As Shape


   Set pastedPic = DestinationSheet.Shapes(1)

   With pastedPic
    .Top = DestinationSheet.Cells(17, 2).Top
    'Rest of positioning  code here

 End With
7gcisfzg

7gcisfzg1#

这段代码非常接近我想要的,我想要复制一个范围,作为一个图像,并将其插入到一个不同的工作表中,并将其大小调整到一个单元格范围的外部边界。当例程运行“Set pastedPic = DestinationSheet.Shapes”时,一切都很好,除了一个小问题(1)”它拿起最后一个选定的对象和该对象之前的对象,以调整插入的图片和最后一个之前的形状结束...我设法获得一些一致结果的方式,就是把(1)改成(2)之前的那个,显然看起来是复制的实体...想想看...

6pp0gazn

6pp0gazn2#

我测试了这个,它对我很有效。如果你有一个多单元格范围对象,你可以得到宽度和高度。如果你不改变.LockAspectRatio = msoFalse,你的图片可能会自我调整。

Dim r As Range
Set r = Me.Range("G30:J30")

With pastedPic
    .LockAspectRatio = msoFalse
    .Top = r.Top
    .Left = r.Left
    .Width = r.Width
    .Height = r.Height
End With

我试着给你们编码,这是我想到的,对于复制图片行,我实际上复制了一个单元格的图片,而不是这些单元格中的某个特定图片,这是你们所期望的吗?
另一个变化是我用ThisWorkbook代替了你的工作簿索引。

Sub test()
    Dim pastedPic As Shape
    Dim DestinationSheet As Worksheet
    Dim desitinationRange As Range
    Set DestinationSheet = ThisWorkbook.Sheets("Eingabefeld")

    Sheets("Overview").Range("A30:D37").CopyPicture
    DestinationSheet.Paste

    Set pastedPic = DestinationSheet.Shapes(1)
    Set desitinationRange = Me.Range("G30:J30")

    With pastedPic
         .LockAspectRatio = msoFalse
         .Top = desitinationRange.Top
         .Left = desitinationRange.Left
         .Width = desitinationRange.Width
         .Height = desitinationRange.Height
     End With
End Sub
dfddblmv

dfddblmv3#

复制图表后,可以执行以下操作:

Sheets("Sheet1").Select
    Range("A1:H14").Select
    ActiveSheet.Paste
    ActiveChart.Parent.Width = Range("A1:H14").Width
    ActiveChart.Parent.Height = Range("A1:H14").Height

相关问题