при попытке заполнить текстовые поля на основе выбора поля со списком появляется ошибка - PullRequest
0 голосов
/ 18 января 2019

Попытка получить текстовые поля для заполнения, когда имя выбрано из моего поля со списком (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 голосов
/ 18 января 2019

Вы звоните 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»)

...