0

我会尽力使这一点尽可能清楚,并感谢任何帮助。所以提前谢谢。
我想创建一个检查表单模板,该模板将自动提取 Windows 登录信息,然后转到服务器位置并拉入一个(与登录相同)命名的图片文件,其中包含用户实际书写签名的 .jpg 或 .png 到在同一个 excel 文件中签名多个选项卡。

Windows 用户 ID 是唯一的,因为这是一项业务。服务器位置不会更改路径。服务器文件位置需要锁定为只读,这样它就不能被篡改,这不应该干扰读取文件以插入它(以防万一)。

我希望用户打开我创建的空白表单。他们的windows登录信息会自动填入签名框。当他们完成检查后,他们可以打印为 pdf 并保存在正确填写的表格位置。我不希望也不需要信息在 excel 文件中的其他计算机上保持静态。如果本地用户保存了他们希望更新的副本,它只会看到他们的签名。

我希望使用唯一的用户名来更新用户的实际名称,该名称也可以保存在服务器上的锁定 excel 文件中,但这可能要求太多,如果需要我可以让他们输入。

文件上的所有签名都是相同的。

编辑 - 录制的宏

Sub Sig_server2() 
' Sig_server2 Macro 
' Keyboard Shortcut: Ctrl+s 

    Environ ("username") ' supposed to define the variable based
                         ' on the windows login information 

    Sheets("Inspectiontype").Select ' Selects the tab to add the signature on 
    Range("H19:R19").Select 'Selects the range where picture is to be inserted 

    ' need "jamesmor" to change to the "username" variable
    ActiveSheet.Pictures.Insert("Y:\QA\Signatures\jamesmor.png").Select 

    Range("S19:V19").Select ' Drops to the next blank to be filled
                            ' in which is the inspection stamp number
End Sub
4

1 回答 1

1

这个应该做...

Sub Tester()
    Const SERVER_PATH As String = "Y:\QA\Signatures\"
    Dim usr As String, fPath As String

    usr = Environ("username")
    fPath = SERVER_PATH & usr & ".png"

    If Dir(fPath, vbNormal) = "" Then
        MsgBox "Signature file for '" & usr & "' not found!"
        Exit Sub
    End If

    InsertPicFile fPath, Sheets("Inspectiontype").Range("H19")
    '...do other inserts

End Sub

Sub InsertPicFile(sigPath As String, rng As Range)
    With rng.Parent.Pictures.Insert(sigPath)
        .Left = rng.Cells(1).Left
        .Top = rng.Cells(1).Top
    End With
End Sub
于 2013-09-24T18:12:19.617 回答