调整图片大小并将其粘贴到其他工作簿中的选定范围

时间:2016-02-23 12:34:26

标签: excel image vba excel-vba copy-paste

这可能太容易问了,但我是初学者。

我希望能够从工作表中复制范围并将其粘贴到调整后大小的另一个工作表中,我应该将其选中并粘贴到其他工作表中的选定范围区域。

当我通过使用宏来执行此操作时,我可以粘贴它并手动调整其大小。当我再次尝试使用此重新渲染的宏时,它不会将其粘贴到我选择的范围并且其大小不同它原来也不像我的调整大小。

如何指定粘贴的大小和范围?

1 个答案:

答案 0 :(得分:0)

如果粘贴图像,可以使用.width,.height,.top,.left来定位它并设置它的宽度和高度。此外,如果您想要适应某个范围,您可以通过该范围的.width,.height,.top,.left属性或甚至单元格来指定它。需要进一步举例吗对我来说似乎太清楚了:(

编辑:尝试这样的事情

Sub copyPic()
    Dim targetSheet As Worksheet
    Set targetSheet = Sheets("Sheet1")

    With targetSheet
        .Range(.Cells(1, 1), .Cells(3, 3)).CopyPicture
        .Paste
        Selection.Name = "pastedPic"

        With .Shapes("pastedPic")
            .Top = targetSheet.Cells(5, 5).Top
            .Left = targetSheet.Cells(5, 5).Left
            .Width = 50
            .Height = 50

        End With
    End With

End Sub

您可以使用类似

的内容
.range("A1:B10") 

而不是我的参考,但尝试理解它,它更容易阅读。它告诉您,您的wana范围有两个角单元格,由行和列编号指定(按此顺序)。或者选择甚至可以是.range(.cells(1,“A”),。cells(3,“C”))但是数字是数字...而且如果你需要增加范围列或数字,则最终...更好的方法

因此,您的需求将是

Sub copyPic()
    Dim targetSheet As Worksheet
    Set targetSheet = Sheets("Sheet1")

    With targetSheet
        .Range("A1:B10") .CopyPicture
        .Paste
        Selection.Name = "pastedPic"

        With .Shapes("pastedPic")
            .Top = targetSheet.Cells(5, 5).Top
            .Left = targetSheet.Cells(5, 5).Left
            .Width = 50
            .Height = 50

        End With
    End With

End Sub

如果您希望将其粘贴到其他工作簿,请尝试使用此类

Sub copyPic()
    Dim targetSheet As Worksheet
    Set targetSheet = Sheets("Sheet1")
    Dim targetWB as excel.workbook
    set targetWB = workbooks.open("pathToYourWorkbook") 
    With targetSheet
        .Range("A1:B10") .CopyPicture
        targetWb.sheets("sheetName").Paste
        Selection.Name = "pastedPic"

        With .Shapes("pastedPic")
            .Top = targetSheet.Cells(5, 5).Top
            .Left = targetSheet.Cells(5, 5).Left
            .Width = 50
            .Height = 50

        End With
    End With

End Sub