Excel Userform для обновления существующих данных - PullRequest
0 голосов
/ 24 апреля 2019

Я хотел бы перезаписать данные с помощью пользовательской формы, я могу вызвать данные в форму на основе Combobox (уникальная ссылка из столбца A в моей таблице данных). Мне не удается отправить обновленные данные обратно, и я застрял на ошибки времени выполнения '13.

Я просмотрел несколько постов, но не могу выбрать тему для успеха! Любая помощь приветствуется. Я оставил код простым, чтобы обновить 4 столбца этой строки. В конечном итоге я буду расширяться со 2-го столбца.

Private Sub cmbtrade_Change() - this part works as expected
Dim trade_name As String

If Me.cmbtrade.Value = "" Then

MsgBox "Trade Can Not be Blank!!!", vbExclamation, "Trade"

Exit Sub

End If

trade_name = cmbtrade.Value

On Error Resume Next

Dim trade As Double
trade_name = cmbtrade.Value
TextBox16.Text = Application.WorksheetFunction.VLookup(trade_name, 
Sheets("Sheet2").Range("A2:D43"), 4, False)

End Sub

Проблемная часть ....

Private Sub cmdupdate_Click()
If Me.cmbtrade.Value = "" Then

MsgBox "Trade Name Can Not be Blank", vbExclamation, "Trade"
Exit Sub
End If
trade_name = cmbtrade.Value
Sheets("sheet2").Select
Dim rowselect As Double

rowselect = Me.cmbtrade.Value (this is where my mismatch error occurs)
rowselect = rowselect + 1
Rows(rowselect).Select

Cells(rowselect, 4) = Me.TextBox16.Value
End Sub

введите описание изображения здесь

1 Ответ

0 голосов
/ 24 апреля 2019

Попробуй это. На самом деле вам не нужно конвертировать комбинированный список в Long, но я думаю, что это хорошая практика.

Private Sub cmdupdate_Click()

If Me.cmbtrade.Value = "" Then
    MsgBox "Trade Name Can Not be Blank", vbExclamation, "Trade"
    Exit Sub
End If

Dim rowselect As Long

rowselect = CLng(Me.cmbtrade.Value) + 1
Sheets("sheet2").Cells(rowselect, 4) = Me.TextBox16.Value

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...