Xin giúp đỡ về code VBA thay thế VLOOKUP

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Moderator: tungblt

Post Reply
hoaquanvan
Posts: 1
Joined: Sun 13/09/2020 3:18 pm

Xin giúp đỡ về code VBA thay thế VLOOKUP

Post by hoaquanvan »

Em có 1 file excel để làm lệnh sản xuất.
Muốn nhờ các bác giúp đỡ code VBA để giảm tải cho hàm VLOOLUP.
Ở sheet LENH EP nhập số đơn thì sẽ lấy hết các dòng có số đơn đó ở sheet DON HANG và đẩy dữ liệu sang LENH EP
Mong các cao nhân giúp đỡ!
Attachments
LENH EP.rar
(314.23 KiB) Downloaded 26 times
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Xin giúp đỡ về code VBA thay thế VLOOKUP

Post by truongphu »

A1 đến A10 là điểm
B1 đến B10 là xếp hạng cần VLOOLUP

Tham chiếu là A14:B17
(như hình).
Untitled.jpg

VBA như sau: Dán vào Visual Basic Sheet1
  1. Sub XepHang()
  2.     For i = 1 To 10
  3.         Select Case Cells(i, 1)
  4.             Case Is >= Cells(17, 1).Value
  5.                 Cells(i, 2).Value = Cells(17, 2).Value
  6.             Case Is >= Cells(16, 1).Value
  7.                 Cells(i, 2).Value = Cells(16, 2).Value
  8.             Case Is >= Cells(15, 1).Value
  9.                 Cells(i, 2).Value = Cells(15, 2).Value
  10.             Case Is >= Cells(14, 1).Value
  11.                 Cells(i, 2).Value = Cells(14, 2).Value
  12.         End Select
  13.     Next
  14. End Sub


Dán xong, nhấn con trỏ vào giữa code, rồi nhấn nút Run ở trên
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Xin giúp đỡ về code VBA thay thế VLOOKUP

Post by truongphu »

Câu trả lời trê là thuần VB6.
Dưới đây là VBA, sử dụng khó hơn khi đưa các đối số của hàm VLOOKUP

  1. Sub Thay_Vlookup()
  2.     For i = 1 To 10
  3.         Cells(i, 2).Value = Application.WorksheetFunction.VLookup(Cells(i, 1).Value, Sheet1.Range("A14B17"), 2, True)
  4.     Next
  5. End Sub


Bạn chèn 1 module, rồi dán sub trên vào. Nhấn con trỏ vào code. Rồi nhấn nút Run ở trên.

Thường hàm VLOOKUP hay dùng đối số cuối là False (chính xác). Sự xếp hạng nầy chỉ nêu ra và ngầm hiểu từ 0 đến <5,5 là yếu, nên khi tham chiếu phải suy luận, dùng True
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Post Reply

Return to “Visual Basic for Application (VBA)”