Xóa hết cái code cũ thay cái này xem nào.Không dùng hàm.Chào thân ái đến anh chị và các bạn trong GPE!
Nhờ mọi người giúp đỡ về công thức tìm kiếm từ giá trị của textbox
Khi nhập textbox mã nhân viên
textbox tên nhân viên sẽ hiển thị tương ứng với mã nhân viên đó
xin cám ơn mọi người
Private Sub txt_mnv_Change()
Dim dk As String, arr, lr As Long
With Sheets("dsnv")
dk = txt_mnv.Value
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A2:B" & lr).Value
For i = 1 To UBound(arr)
If dk = arr(i, 1) Then
txt_ten = arr(i, 2)
GoTo xong
End If
Next i
txt_ten = ""
End With
xong:
End Sub
Bạn chép code sau vào form nhé.Chào thân ái đến anh chị và các bạn trong GPE!
Nhờ mọi người giúp đỡ về công thức tìm kiếm từ giá trị của textbox
Khi nhập textbox mã nhân viên
textbox tên nhân viên sẽ hiển thị tương ứng với mã nhân viên đó
xin cám ơn mọi người
Public rst As Object
Private Sub txt_mnv_Change()
On Error Resume Next
rst.Filter = "MNV='" & txt_mnv.Text & "'"
If rst.RecordCount > 0 Then
txt_ten.Text = rst.Fields(1).Value
Else
txt_ten.Text = ""
End If
End Sub
Private Sub UserForm_Initialize()
Set rst = CreateObject("ADODB.Recordset")
rst.Open ("Select * from [DSNV$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 3
End Sub
cám ơn bạn, mình làm được rồi.Xóa hết cái code cũ thay cái này xem nào.Không dùng hàm.
Mã:Private Sub txt_mnv_Change() Dim dk As String, arr, lr As Long With Sheets("dsnv") dk = txt_mnv.Value lr = .Range("A" & Rows.Count).End(xlUp).Row arr = .Range("A2:B" & lr).Value For i = 1 To UBound(arr) If dk = arr(i, 1) Then txt_ten = arr(i, 2) GoTo xong End If Next i txt_ten = "" End With xong: End Sub
cám ơn ADBạn chép code sau vào form nhé.
Mã:Public rst As Object Private Sub txt_mnv_Change() On Error Resume Next rst.Filter = "MNV='" & txt_mnv.Text & "'" If rst.RecordCount > 0 Then txt_ten.Text = rst.Fields(1).Value Else txt_ten.Text = "" End If End Sub Private Sub UserForm_Initialize() Set rst = CreateObject("ADODB.Recordset") rst.Open ("Select * from [DSNV$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 3 End Sub
Nếu bạn vẫn muốn dùng Vlookup thì dùng code này. Tuy nhiên do mã nhân viên bạn đang để trên sheet DSNV là kiểu số, nên lưu ý khi nhập mã vào Textbox phải chuyển đổi về số mới Vlookup được.Chào thân ái đến anh chị và các bạn trong GPE!
Nhờ mọi người giúp đỡ về công thức tìm kiếm từ giá trị của textbox
Khi nhập textbox mã nhân viên
textbox tên nhân viên sẽ hiển thị tương ứng với mã nhân viên đó
xin cám ơn mọi người
Private Sub txt_mnv_AfterUpdate()
Dim kqTK
Dim sArray_DSNV
If txt_mnv <> "" Then
txt_ten = ""
kqTK = Application.VLookup(Val(txt_mnv), Sheets("DSNV").Range("A2:B4"), 2, 0)
Select Case IsError(kqTK)
Case False: txt_ten = Application.VLookup(Val(txt_mnv), Sheets("DSNV").Range("A2:B4"), 2, 0)
Case True: txt_ten = "No result!"
End Select
End If
End Sub
Ok! mình đã hiểu, cám ơn bạn nhiềuNếu bạn vẫn muốn dùng Vlookup thì dùng code này. Tuy nhiên do mã nhân viên bạn đang để trên sheet DSNV là kiểu số, nên lưu ý khi nhập mã vào Textbox phải chuyển đổi về số mới Vlookup được.
Mã:Private Sub txt_mnv_AfterUpdate() Dim kqTK Dim sArray_DSNV If txt_mnv <> "" Then txt_ten = "" kqTK = Application.VLookup(Val(txt_mnv), Sheets("DSNV").Range("A2:B4"), 2, 0) Select Case IsError(kqTK) Case False: txt_ten = Application.VLookup(Val(txt_mnv), Sheets("DSNV").Range("A2:B4"), 2, 0) Case True: txt_ten = "No result!" End Select End If End Sub
Mã NV | Tên Nhân viên | ||||||||||
VFF00 | Vũ Đình Đạo | ||||||||||
VFD00 | Võ Đình Dương | ||||||||||
VJD00 | Võ Dũng | ||||||||||
VFF01 | Vy Đức Độ | ||||||||||
THA00 | Trần Ngô Hoàng Ánh | ||||||||||
THA01 | Từ Hoài Anh | ||||||||||
THA02 | Thái Thị Hà Ân | ||||||||||