VBA Userform用户签名输入到电子表格中

时间:2018-02-05 08:30:13

标签: excel vba image excel-vba picturebox

我是InkPicture的新手,但我喜欢用它来让用户将签名放入表单中。

我似乎无法将签名(墨迹图片)保存到电子表格中,只是将其输入为我指定的单元格中的0。

With UserForm1.InkPicture1.InkEnabled = False Set.Ink Me.InkPicture1.Ink .InkEnabled = True End With lrDep = Sheets("Deploy").Range("A" & Rows.Count).End(xlUp).Row Sheets("Deploy").Cells(lrDep + 1, "A").Value = TBox1.Text Sheets("Deploy").Cells(lrDep + 1, "B").Value = TBox2.Text Sheets("Deploy").Cells(lrDep + 1, "C").Value = TBox3.Text Sheets("Deploy").Cells(lrDep + 1, "D").Value = TBox4.Text Sheets("Deploy").Cells(lrDep + 1, "G").Value = InkPicture1.Ink

有人可以帮助我。 谢谢。

2 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,但会帮助你,在你有任何问题时发表评论。

首先,您必须在表单上有一个需要资产ID的文本框, 这将被修改以匹配您当前的表格。

Dim RowN As Long
Dim SearchTxt
SearchTxt = TextBox1.Value 'This should be set to the text box name on the form of the  asset ID
    On Error Resume Next
    RowN = Application.WorksheetFunction.Match(SearchTxt, Range("A:A"), 0)
    On Error GoTo 0
    If RowN > 0 Then

            'your code here if matches
            MsgBox RowN ' display the row number

        Else

            'your code here if no match, possibly add new row of data
            MsgBox "No match found" 
End If

现在您可以修改每行代码以使用找到的行号,例如:

Sheets("Data").Cells("A" & RowN).Value = TextBox1.Txt

如果我正在创建此表单,我会添加一个搜索按钮来检查资产ID以及找到匹配的位置,然后所有文本框都会填充数据的当前值,然后可以修改加回到表格。

答案 1 :(得分:0)

以下将查找A列中的ID,如果找到将使用该行输入数据,则假定该ID存储在TextBox1.Text中,根据需要进行修改:

Private Sub SB1_Click()

Dim lrREG As Long, lrB As Long, lrDep As Long, lrDis As Long, lrDAT As Long
Dim foundID As Range


        Set foundID = Sheets("Data").Range("A:A").Find(What:=TextBox1.Text, Lookat:=xlWhole)
        If Not foundID Is Nothing Then
            Sheets("Data").Cells(foundID.Row, "A").Value = TextBox1.Text
            Sheets("Data").Cells(foundID.Row, "B").Value = TextBox2.Text
            Sheets("Data").Cells(foundID.Row, "C").Value = TextBox3.Text
        Else
            lrDAT = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row + 1
            Sheets("Data").Cells(lrDAT, "A").Value = TextBox1.Text
            Sheets("Data").Cells(lrDAT, "B").Value = TextBox2.Text
            Sheets("Data").Cells(lrDAT, "C").Value = TextBox3.Text
        End If

    lrREG = Sheets("Register").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Register").Cells(lrREG + 1, "A").Value = TextBox1.Text
    Sheets("Register").Cells(lrREG + 1, "B").Value = TextBox2.Text
    Sheets("Register").Cells(lrREG + 1, "C").Value = TextBox3.Text

    lrB = Sheets("Built").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Built").Cells(lrB + 1, "A").Value = TB1.Text
    Sheets("Built").Cells(lrB + 1, "B").Value = TB2.Text
    Sheets("Built").Cells(lrB + 1, "C").Value = TB3.Text
    Sheets("Built").Cells(lrB + 1, "D").Value = TB4.Text
    Sheets("Built").Cells(lrB + 1, "E").Value = TB5.Text
    Sheets("Built").Cells(lrB + 1, "F").Value = TB6.Text

    lrDep = Sheets("Deploy").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Deploy").Cells(lrDep + 1, "A").Value = TBox1.Text
    Sheets("Deploy").Cells(lrDep + 1, "B").Value = TBox2.Text
    Sheets("Deploy").Cells(lrDep + 1, "C").Value = TBox3.Text
    Sheets("Deploy").Cells(lrDep + 1, "D").Value = TBox4.Text
    Sheets("Deploy").Cells(lrDep + 1, "E").Value = TBox5.Text
    Sheets("Deploy").Cells(lrDep + 1, "F").Value = TBox6.Text

    lrDis = Sheets("Dispose").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Dispose").Cells(lrB + 1, "A").Value = TextBo1.Text
    Sheets("Dispose").Cells(lrDis + 1, "B").Value = TextBo2.Text
    Sheets("Dispose").Cells(lrDis + 1, "C").Value = TextBo3.Text
    Sheets("Dispose").Cells(lrDis + 1, "D").Value = TextBo4.Text
    Sheets("Dispose").Cells(lrDis + 1, "E").Value = TextBo5.Text
    Sheets("Dispose").Cells(lrDis + 1, "F").Value = TextBo6.Text
End Sub