Я создал пользовательскую форму с некоторым текстовым полем, когда пользователь заполняет текстовое поле некоторым номером детали (например, 160007), все другие текстовые поля имеют формулу vlookup для поиска в базе данных какой-либо другой информации.
Проблема в том, что когда vlookup ищет номер по каталогу, который содержит 1-9 цифр, он работает нормально, но если есть номер детали с более чем 9 цифрами, если ничего не возвращается (у нас есть номер детали до 15 цифр, только цифры, неттексты) Я попытался изменить формат базы данных на текст, число, общее ... не работает
В приведенном ниже коде textbox3 является проблемой, когда textbox2 заполняется большими числами
Private Sub TextBox1_AfterUpdate()
On Error Resume Next
'textbox2
Dim width, code
Dim WorkbookName As String
Dim WB As Workbook
Dim Sht As Worksheet
Dim Rng As Range
WorkbookName = "Bancodedados.xlsx"
' set the workbook object
On Error Resume Next
Set WB = Workbooks(WorkbookName) ' first try to see if the workbook already open
On Error GoTo 0
If WB Is Nothing Then ' if workbook = Nothing (workbook is closed)
Set WB = Workbooks.Open("C:\Users\arthurg\Documents\FERRAMENTAS\" & WorkbookName)
End If
' set the worksheet object
Set Sht = WB.Sheets("DMG850V")
' set the Range object
Set Rng = Sht.Range("A1:K20000")
' verify that Vlookup found code in the Range
On Error Resume Next
If Not IsError(Application.Vlookup(CLng(Me.TextBox1), Rng, 2, False)) Then
With Me
TextBox2 = Application.Vlookup(CLng(Me.TextBox1), Rng, 2, False)
End With
Else
MsgBox "Ferramenta não encontrada" & ", entrar em contato com Engenharia"
End If
'textbox3
' set the workbook object
On Error Resume Next
Set WB = Workbooks(WorkbookName) ' first try to see if the workbook already open
On Error GoTo 0
If WB Is Nothing Then ' if workbook = Nothing (workbook is closed)
Set WB = Workbooks.Open("C:\Users\arthurg\Documents\FERRAMENTAS" & WorkbookName)
End If
' set the worksheet object
Set Sht = WB.Sheets("Descrição")
' set the Range object
Set Rng = Sht.Range("A:C")
' verify that Vlookup found code in the Range
On Error Resume Next
If Not IsError(Application.Vlookup(CLng(Me.TextBox2), Rng, 2, False)) Then
With Me
TextBox3 = Application.Vlookup(CLng(Me.TextBox2), Rng, 2, False)
End With
Else
MsgBox "Ferramenta não encontrada" & ", entrar em contato com Engenharia"
End If