读取输入的姓名,然后在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
第一步:将控件文本框读取到变量中;
第二步:将变量写入excel单元格
需要的话加我好友
二张图的行号列号都看不到咋写。
还有个问题,理论上来讲,姓名是有可能重名的,如果真的遇到两个人名字相同,其它信息不同,这样提交信息后,第二个人的数据会把第一个人的数据覆盖掉。
建议用唯一的属性来判断需不需要覆盖,比如用身份证号或者电话号来判断是不是需要覆盖,而不是用姓名判断。
最好是用身份证号来判断,因为电话号的话,你也不能保证人家换不换电话号码。
还有个问题,理论上来讲,姓名是有可能重名的,如果真的遇到两个人名字相同,其它信息不同,这样提交信息后,第二个人的数据会把第一个人的数据覆盖掉。