2013-11-21 202 views
2

我有一个作为表单构建的excel电子表格,我需要在工作簿中的不同标签上的多个范围中添加签名。将剪贴板中的图像粘贴到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 
+0

这是绕了错误的方式。如果某个其他进程将其他内容复制到剪贴板或剪贴板中,该怎么办?图像是否存储在任何文件中? –

+0

我的过程是,打开油漆内的jpg文件做选择复制,点击复制,进入excel工作簿并点击签名按钮。然后我希望它将复制的签名粘贴到我想要的位置,并将其大小设置为我将预先确定的相关大小。什么是更好的方法来做到这一点? – Jez

+0

希望我的帖子在评论中回答你的问题? –

回答

1

我的过程中,打开油漆中的JPG文件进行选择复制,点击复制,进入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

+0

精湛的东西!工作一种享受:-)感谢您的帮助。开始时有一些手动工作,让图像只有图像中的签名部分。我说这是因为我正在扫描已签名的表单,然后从此签名并添加到Excel电子表格表格 – Jez

+0

很高兴它解决了:) –

相关问题