将剪贴板中的图像粘贴到Excel中

时间:2013-11-21 21:30:34

标签: excel excel-vba vba

我有一个excel电子表格,我已经将其作为表单构建,我需要在工作簿中的不同选项卡上的几个范围中添加签名。

我已经有了这个代码,它会从剪贴板粘贴到我的工作表上,它似乎只想粘贴在工作表的左上角,而不想调整为设置的值。

如何将其粘贴到我想要的位置以及我想要的尺寸?由此我希望能够将其复制并粘贴到具有不同范围位置的其他几张纸

Sub Signatures()
    Sheets("MySheet1").Select
    Range("A11").Select
    ActiveSheet.Paste
    Selection.ShapeRange.ScaleHeight 0.8513513514, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleWidth 0.9399224806, msoFalse, msoScaleFromTopLeft 
End Sub

1 个答案:

答案 0 :(得分:1)

  

我的过程是,在paint中打开jpg文件,选择要复制,单击copy,进入excel工作簿,然后点击地点签名按钮。然后我希望它将复制的签名粘贴到我想要的位置,并将其大小调整到我预定的相关大小。 有什么更好的方法可以做到这一点?

保存JPG文件。假设您将其保存为"C:\Signature.Jpg"

试试此代码

Sub InsertSignatures()
    Dim ws As Worksheet
    Dim ImgPath As String
    Dim W As Double, H As Double
    Dim L As Long, T As Long

    Set ws = ThisWorkbook.Sheets("MySheet1")

    '~~> Change this to the releavnt pic file
    ImgPath = "C:\Signature.Jpg"

    With ws
        W = 100                  '<~~ Width
        H = 100                  '<~~ Height
        L = .Range("A11").Left   '<~~ Left Position for image
        T = .Range("A11").Top    '<~~ Top Position for image

        With .Pictures.Insert(ImgPath)
            With .ShapeRange
                .LockAspectRatio = msoTrue
                .Width = W
                .Height = H
            End With
            .Left = L
            .Top = T
            .Placement = 1
        End With
    End With
End Sub

<强>输出

enter image description here