Vba обновить форму пользователя на основе текстового идентификатора - PullRequest
0 голосов
/ 19 января 2020

В настоящее время пытаюсь применить другую пользовательскую форму, которую я нашел в Интернете, чтобы удовлетворить свои потребности.

Пользовательскую форму можно использовать для поиска и обновления значений, основанных на цифре c Id (SLNo), и она использует vlookup чтобы найти информацию, основанную на этом идентификаторе, но в моем наборе данных идентификатор будет состоять из числовых значений c и не числовых c, хранящихся в виде текста.

Попытка манипулировать формой для чтения и обновление с нечислового идентификатора c, такого как изменение Dim для SLNo с целого на строку, только помогает форме прочитать значения, а я не могу обновить значения.

ошибка времени выполнения 13: несоответствие

debug -> rowselect = Me.cmbslno.Value

Вот код:

Private Sub cmbslno_Change()
Dim SLNo As Integer

If Me.cmbslno.Value = "" Then
MsgBox "SL No Can Not be Blank!!!", vbExclamation, "SL No"
Exit Sub
End If
SLNo = cmbslno.Value
On Error Resume Next
Me.txtregion.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 2, 0)
Me.txtmarket.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 3, 0)
Me.txtbNum.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 4, 0)
Me.txtcnum.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 5, 0)
Me.txtcity.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 6, 0)
Me.txtState.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 7, 0)
Me.txtpnum.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 8, 0)
Me.txtSdate.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 9, 0)
Me.txtInum.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 10, 0)
Me.txtIdate.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 11, 0)
Me.txtSamount.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 12, 0)
Me.txtsp.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 13, 0)
Me.txtSR.Value = Application.WorksheetFunction.VLookup(SLNo, Sheets("data").Range("A2:N1087"), 14, 0)

End Sub

Private Sub cmddelete_Click()
Sheets("Data").Select
Dim msg As String
Dim ans As String
If Me.cmbslno.Value = "" Then
MsgBox "Sl No can not be Blank!!", vbExclamation, "SL No"
Exit Sub
End If
Dim rowselect As Double
rowselect = Me.cmbslno.Value
rowselect = rowselect + 1
Rows(rowselect).EntireRow.Delete
rowselect = rowselect - 1
msg = "Sl No " & rowselect & "  Successfilly Deleted...Continue?"
Unload Me
ans = MsgBox(msg, vbYesNo, "Delete")
If ans = vbYes Then
UserForm1.Show
Else
Sheets("Data").Select
End If
End Sub

Private Sub cmdupdate_Click()
If Me.cmbslno.Value = "" Then
MsgBox "SL No Can Not be Blank!!!", vbExclamation, "SL No"
Exit Sub
End If
SLNo = Me.cmbslno.Value
Sheets("data").Select
Dim rowselect As Double
Dim msg As String
Dim ans As String
rowselect = Me.cmbslno.Value
rowselect = rowselect + 1
Rows(rowselect).Select
Cells(rowselect, 2) = Me.txtregion.Value
Cells(rowselect, 3) = Me.txtmarket.Value
Cells(rowselect, 4) = Me.txtbNum.Value
Cells(rowselect, 5) = Me.txtcnum.Value
Cells(rowselect, 6) = Me.txtcity.Value
Cells(rowselect, 7) = Me.txtState.Value
Cells(rowselect, 8) = Me.txtpnum.Value
Cells(rowselect, 9) = Me.txtSdate.Value
Cells(rowselect, 10) = Me.txtInum.Value
Cells(rowselect, 11) = Me.txtIdate.Value
Cells(rowselect, 12) = Me.txtSamount.Value
Cells(rowselect, 13) = Me.txtsp.Value
Cells(rowselect, 14) = Me.txtSR.Value
rowselect = rowselect - 1
msg = "Sl No " & rowselect & "  Successfully Updated...Continue?"
Unload Me
ans = MsgBox(msg, vbYesNo, "Update")
If ans = vbYes Then
UserForm1.Show
Else
Sheets("Data").Select
End If
End Sub

Он был загружен с этой Ссылка

Я действительно новичок в Vba, однако я чувствую, что если бы кто-то мог изменить этот код, чтобы он работал, было бы плавно идти к конечному продукту, который я ищу

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