当我尝试根据组合框选择填充文本框时收到错误消息

时间:2019-01-18 17:00:03

标签: excel vba userform

从我的组合框(cboCo)中选择一个名称后,尝试填充文本框。在第四行代码中获取错误method range of object'_worksheet' failed

我不是一个强大的程序员,VB一直是我的难题。我正在为供应商电子表格创建一个表单,该表单将允许用户查看电子表格中的数据,编辑供应商数据,添加新数据以及根据需要删除数据。到目前为止,我已经可以添加数据并在组合框中显示公司名称。我目前正在处理的是使文本框填充组合框中所选公司的行中的数据。

Private Sub cboCo_Change()
  Dim iRow As Long, LastRow As Long, ws As Worksheet
  Set ws = Worksheets("VendorInfo")
  LastRow = ws.Range(1 & Rows.Count).End(x1Up).Row

  For iRow = 2 To LastRow
    If (Me.cboCo.Value) = ws.Cells(iRow, 1) Then
      Me.cboCat = ws.Cells(iRow, 19).Value
      Me.cboCat = ws.Cells(iRow, 19).Value
      Me.cboYrApprv = ws.Cells(iRow, 14).Value
      Me.txtContact = ws.Cells(iRow, 2).Value
      Me.txtPhone = ws.Cells(iRow, 3).Value
      Me.txtEmail = ws.Cells(iRow, 4).Value
      Me.txtCoAdd = ws.Cells(iRow, 5).Value
      Me.txtWebSite = ws.Cells(iRow, 6).Value
      Me.txtAccred = ws.Cells(iRow, 8).Value
      Me.txtStanding = ws.Cells(iRow, 9).Value
      Me.txtSince = ws.Cells(iRow, 10).Value
      Me.txtNotes = ws.Cells(iRow, 11).Value
      Me.txtVerified = ws.Cells(iRow, 12).Value
      Me.txtToday = ws.Cells(iRow, 13).Value
      Me.txtServProd = ws.Cells(iRow, 7).Value
      Me.txtApprvBy = ws.Cells(iRow, 15).Value
      Me.txtAprvReas = ws.Cells(iRow, 16).Value
      Me.txtOrder = ws.Cells(iRow, 17).Value
      Me.txtPurchs = ws.Cells(iRow, 18).Value
    End If
  Next iRow
End Sub

当我从cboCo组合框中选择一家公司时,在第四行出现method range of object'_worksheet' failed错误(从循环上方的LastRow开始)

1 个答案:

答案 0 :(得分:0)

您打错了Range()。试试这个:

LastRow = ws.Cells(1, Rows.Count).End(xlUp).Row

LastRow = ws.Range("A" & rows.count).End(xlUp).Row

最初,它基本上解析为ws.Range(1 & 1048576)...-> ws.Range(11048576).End(xlUp).Row,其中A)不是正确的Range,而B)是不存在的行号。

另外,请注意,它是xlUp,而不是x1Up(它是“ L”,而不是“ 1”)

相关问题