Я хочу сделать заявление, что если пользователь вводит идентификатор пользователя, которого нет в списке, или пользователь добавляет код, которого тоже нет в списке, он должен выдать сообщение об ошибке и ничего не добавлять.
FindRow - для идентификатора пользователя, а FindRow2 - для кода, который они сканируют.
Мне нужно просто что-то простое, чтобы прекратить добавлять строки, если идентификатор или код не добавляются вручную в Excel.
Любая другая помощь, которую я могу дать, просто спросите меня, пожалуйста.
Вот мой фактический код:
Private Sub ConfirmarEntre_Click()
Dim FindRow As Range, FindRow2 As Range, FindRow3 As Range, WTCHECK As Range
Dim row As String, wtrow As String, var1 As String, var2 As String
Dim AddMe As Range, AddMe2 As Range, AddMe3 As Range, AddWT As Range, Estado As Range, Estado2 As Range
Dim Registros As Workbook
'error block
On Error GoTo errHandler:
If Me.TextBox1.Value <> "" Then
'Encontrar el legajo en la lista
row = Me.TextBox1.Value
Set FindRow = Hoja2.Range("B:B").Find(What:=row, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
Set AddMe = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set AddMe2 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 1)
Set AddMe3 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 2)
'Encontrar el WT en la lista
wtrow = Me.TextBox2.Value
Set FindRow2 = Hoja4.Range("D:D").Find(What:=wtrow, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
Set AddWT = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 3)
'Agregar la fecha y hora a la celda
Status = Now
Set Estado = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 4)
'Agregar la palabra entregado a la celda
Status2 = "Entregado"
Set Estado2 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 5)
With Registros
'Si lo encuentra, agregarlo a la planilla
Range("2:2").Insert
AddMe.Value = FindRow.Offset(0, 0)
AddMe2.Value = FindRow.Offset(0, 1)
AddMe3.Value = FindRow.Offset(0, 2)
AddWT.Value = FindRow2.Offset(0, 0).Value
Estado.Value = Status
Estado2.Value = Status2
End With
'sort the Registros by "Legajo"
Hoja3.Select
With Registros
Hoja3.UsedRange.Sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
End With
ElseIf Me.TextBox1.Value = "" Then
MsgBox "El legajo no puede estar vacio"
Exit Sub
End If
MsgBox "Los datos fueron corroborados, puede entregar el WT"
'Deja las casillas vacias cuando termina
TextBox1.Value = ""
TextBox2.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
'error block
On Error GoTo 0
Exit Sub
errHandler:
' Verify the data entered, because they are not correct
MsgBox "Error! Verificar los datos ingresados, porque no son correctos!" & vbCrLf
End Sub
В настоящее время обработчик ошибок выдает ошибку, но сохраняет добавление половины некоторых ячеек, даже если этого не следует делать.
Я пытался с If FindRow.value is Nothing then
, но выдает ошибку, что переменная не установлена или не добавлен оператор With.