求助大神!!!excel vba activex 控件 textbox 中的内容通过按钮导入到指定单元格?

如图1,我需要在文本框内输入相应信息(如张三及其信息),然后点击下方的按钮,将数据导入到图2的表格中。当再次点击图1中的按钮时,如果姓名文本框内的内容不变(还是张三),则保存在图2的同一行(张三那一行);如果姓名改变了(变成李四),则保存在下一行。请问,按钮的代码怎么写?请求大神大牛不吝赐教,感激不尽!!!!!!!

读取输入的姓名,然后在B列查找输入的姓名,找到就记下行号,更新信息。没有找到,就在最后一行的下一行添加数据。

Private Sub CommandButton1_Click()
    'Sheet1 是输入信息的工作表,Sheet2是存放数据的工作薄。
    Dim lngRow As Variant, strName As String
    strName = Sheet1.TextBox2.Text
    lngRow = Application.Match(strName, Sheet2.Range("B:B"), 0)
    If Application.IsError(lngRow) Then
        lngRow = Sheet2.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
        Sheet2.Cells(lngRow, 1) = "A2019" & Format(lngRow - 1, "000")       '新增加的行,添加编号
    End If
    
    'MsgBox lngRow
    '此时根据lngRow的值来更新信息就好了。
    Sheet2.Cells(lngRow, 2) = "'" & strName
    '其他信息
    '
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-12
第一步:将控件文本框读取到变量中;
第二步:将变量写入excel单元格
需要的话加我好友
第2个回答  2019-03-12
二张图的行号列号都看不到咋写。
还有个问题,理论上来讲,姓名是有可能重名的,如果真的遇到两个人名字相同,其它信息不同,这样提交信息后,第二个人的数据会把第一个人的数据覆盖掉。
建议用唯一的属性来判断需不需要覆盖,比如用身份证号或者电话号来判断是不是需要覆盖,而不是用姓名判断。
最好是用身份证号来判断,因为电话号的话,你也不能保证人家换不换电话号码。
第3个回答  2019-03-12
还有个问题,理论上来讲,姓名是有可能重名的,如果真的遇到两个人名字相同,其它信息不同,这样提交信息后,第二个人的数据会把第一个人的数据覆盖掉。
相似回答