MatchCase: = False) .row и «ошибка выполнения 91» - PullRequest
0 голосов
/ 31 мая 2018

Я хочу ввести текст и значения в commandbutton и заполнить электронную таблицу.мой код здесь:

Private Sub CommandButton1_Click()

Dim rng As Range
Dim LastRow As Long

Set rng = ActiveSheet.ListObjects("table1").Range


LastRow = rng.Find(What:=” * ”, _
    After:=rng.Cells(1), _
    Lookat:=xlPart, _
    LookIn:=xlFormulas, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlPrevious, _
    MatchCase:=False).Row

    rng.Parent.Cells(LastRow + 1, 1).Value = TextBox1.Text
    rng.Parent.Cells(LastRow + 1, 2).Value = ComboBox1.Text
    rng.Parent.Cells(LastRow + 1, 3).Value = TextBox3.Value
    rng.Parent.Cells(LastRow + 1, 4).Value = TextBox4.Value
    rng.Parent.Cells(LastRow + 1, 5).Value = TextBox5.Value

End Sub

Я получаю ошибку времени выполнения 91 на matchcase:=false).row, и я не знаю почему.Дополнительный набор глаз был бы очень полезен.

1 Ответ

0 голосов
/ 31 мая 2018

Похоже, вы добавляете строку в существующую таблицу (ListObject).Нет необходимости искать последнюю строку - вы можете просто использовать ListRows.Add.Если вы не укажете позицию, в которую хотите добавить строку, она будет автоматически добавлена ​​внизу.

Это упрощает то, что вы пытаетесь сделать.

Private Sub CommandButton1_Click()
    Dim newRow As ListRow
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects("table1")
    Set newRow = tbl.ListRows.Add

    With newRow
        .Range(1) = Textbox1.Text
        .Range(2) = ComboBox1.Text
        .Range(3) = TextBox3.Value
        .Range(4) = TextBox4.Value
        .Range(5) = TextBox5.Value
    End With
End Sub
...