基于excel中的combobox值将数据从一个表单传输到另一个表单
我在工作簿中有2张工作表和一个用户表单。
Sheet1,有3行,包含移位types信息(A2 = A,A3 = B和A4 = C),还有B列(开始时间),C列(结束时间)等附加数据。
我使用一个表格来input员工姓名(txtName)和他们在工作表2中的class次types(cboShift)。col A =姓名和列B =class次types)现在我想通过点击UPDATEbutton完成class次2中的员工数据他们相关的移动信息(开始时间,结束时间…)从表1复制到下一个单元格。
Private Sub cmdUpdate_Click() Dim LastRow As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Dim rng As Range Dim rgnSearch As Range Dim rngFound As Range Set ws1 = Sheets("Sheet1") Set ws2 = Sheets("Sheet2") LastRow = ws2.Range("A" & ws2.Rows2.Count).End(xlUp).row + 1 ws2.Range("A" & LastRow).Value = Me.txtName.Text ws1.Range("A" & LastRow).Offset(0, 1).Value = Me.cboShift.Text Set rgnSearch = ws1.Range("A1", ws1.Cells(Rows2.Count, 1).End(xlUp)) With rgnSearch Set rngFound = .Find(Me.txtName.Text, LookIn:=xlValues) If Not rngFound Is Nothing Then ws1.Range("C" & rngFound.row & ":F" & rngFound.row).Copy Destination:=ws2.Range("C" & LastRow) End If End With End Sub End Sub
我在两张表中都有标题。
当我运行的代码,我得到错误“方法或数据成员未find)。
LastRow = ws2.Range("A" & ws2.**Rows2**.Count).End(xlUp).row + 1
我的下一个问题是:有没有办法为每个人传输数据时,我点击添加button,而不是为所有Thanx后
你可能的意思
LastRow = ws2.Range("A" & ws2.Rows.Count).End(xlUp).row + 1
代替
LastRow = ws2.Range("A" & ws2.Rows2.Count).End(xlUp).row + 1
引起的错误已经在@ h2so4上面回答了。
但是,在代码中需要考虑几件事情:
-
ws1.Range("A" & LastRow).Offset(0, 1).Value = Me.cboShift.Text
,不知道它是相同的LastRow
为ws1
和ws2
,是ws2
? -
一旦你已经有了一个成功的发现,在
If Not rngFound Is Nothing Then
,你可以使用不同的编码来复制同一行的单元格C:F的内容。
代替:
ws1.Range("C" & rngFound.row & ":F" & rngFound.row).Copy Destination:=ws2.Range("C" & LastRow)
您可以使用:
rngFound.Offset(, 2).Resize(1, 4).Copy Destination:=ws2.Range("C" & LastRow)