Giúp em code VBA tìm kiếm ô theo điều kiện (1 người xem)

  • Thread starter Thread starter faceeng
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

faceeng

Thành viên mới
Tham gia
21/10/10
Bài viết
5
Được thích
0
Em có file ecxel đính kém, em muốn là khi nhập mã khách ở sheet NHẬP LIỆU và chạy code thì ở sheet DATA ô chứa tên khách hàng tương ứng với mã được lựa chọn.

PS: em mới nhập môn VBA thôi ạ, nghiên cứu thear FIND METHOD mà toàn thứ sao siêu em ko hiểu được nên nhờ mọi người giúp đỡ
em xin cảm ơn!
 

File đính kèm

Bạn dán đoạn code này vào Sheet Nhap Lieu:
[GPECODE=vb]
Option Explicit
Dim i
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A2").Address Then
For i = 1 To 6
If Sheet2.Cells(i, 1) = Target Then
Sheet2.Activate
ActiveSheet.Range("B" & i).Select
Exit For
End If
Next i
End If
End Sub[/GPECODE]
 
Upvote 0
Bạn dán đoạn code này vào Sheet Nhap Lieu:
[GPECODE=vb]
Option Explicit
Dim i
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A2").Address Then
For i = 1 To 6
If Sheet2.Cells(i, 1) = Target Then
Sheet2.Activate
ActiveSheet.Range("B" & i).Select
Exit For
End If
Next i
End If
End Sub[/GPECODE]

Cảm ơn ban. mình lại có thêm code để học hỏi.
 
Upvote 0
Bạn dán đoạn code này vào Sheet Nhap Lieu:
[GPECODE=vb]
Option Explicit
Dim i
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A2").Address Then
For i = 1 To 6
If Sheet2.Cells(i, 1) = Target Then
Sheet2.Activate
ActiveSheet.Range("B" & i).Select
Exit For
End If
Next i
End If
End Sub[/GPECODE]
Thắc mắc: Sao không dùng Find cho đơn giản nhỉ? (Đoán là bạn chưa biết Application.Goto)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rngFind As Range
  If Target.Address = "$A$2" Then
    Set rngFind = Sheets("DATA").Range("A1:A1000").Find(Target.Value, , xlValues, xlWhole)
    If Not rngFind Is Nothing Then Application.Goto rngFind.Offset(, 1)
  End If
End Sub
 
Upvote 0
Thắc mắc: Sao không dùng Find cho đơn giản nhỉ? (Đoán là bạn chưa biết Application.Goto)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rngFind As Range
  If Target.Address = "$A$2" Then
    Set rngFind = Sheets("DATA").Range("A1:A1000").Find(Target.Value, , xlValues, xlWhole)
    If Not rngFind Is Nothing Then Application.Goto rngFind.Offset(, 1)
  End If
End Sub

lúc đầu em cũng nghĩ vậy mà đọc về find ko hieu. Em xin tham khảo thêm code của bác ạ
 
Upvote 0
Thắc mắc: Sao không dùng Find cho đơn giản nhỉ? (Đoán là bạn chưa biết Application.Goto)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rngFind As Range
  If Target.Address = "$A$2" Then
    Set rngFind = Sheets("DATA").Range("A1:A1000").Find(Target.Value, , xlValues, xlWhole)
    If Not rngFind Is Nothing Then Application.Goto rngFind.Offset(, 1)
  End If
End Sub

Vẫn code này, em muốn gán vào 1 shap để bấm vào khi cần bác giúp em với ạ..
 
Upvote 0
Nếu vậy sửa thế này
Mã:
Public Sub GPE()
  Dim rngFind As Range
    Set rngFind = Sheets("DATA").Range("A1:A1000").Find(Sheet1.[a2].Value, , xlValues, xlWhole)
    If Not rngFind Is Nothing Then Application.Goto rngFind.Offset(, 1)
End Sub
 
Upvote 0
Cảm ơn các bác đã nhiệt tình giúp đỡ ạ..
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom