Xin giúp về sử dụng hàm Index và Match bằng VBA (4 người xem)

Liên hệ QC

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

tvquan41

Thành viên chính thức
Tham gia
8/1/11
Bài viết
62
Được thích
4
Xin mọi người giúp về cách sử dụng mà Index và Match trong VB giống yêu cầu trong file dưới đây.
Thanks!
 

File đính kèm

Xin mọi người giúp về cách sử dụng mà Index và Match trong VB giống yêu cầu trong file dưới đây.
Thanks!

Đưa file lên với cả rừng code như thế, nhìn choáng quá, chẳng biết phải giúp bạn chổ nào nữa
Để nhanh chóng nhận được trợ giúp, bạn phải biết cách giả lập dữ liệu nhu sau:
- Đúng với cấu trúc dữ liệu thật
- Lượt bỏ hết những phần không liên quan và tập trung vào vấn đề chính cần hỏi
----------------
Nói ngoài lề 1 chút: Với 1 file có cả rừng code như thế, các thành viên trên diễn đàn sẽ nghĩ rằng: "Bạn có khả năng tạo ra những code hoành tráng thế thì cái chuyện MATCH, INDEX gì gì đó chỉ là chuyện nhỏ! Tự bạn có thể làm được mà không cần phải hỏi gì cả"
Vậy đấy
 
Upvote 0
Em muốn thay gì dùng công thức Index và match trong Excel để dò tìm theo hai điều kiện thì ta dùng hàm thay thế trong VB. Em đã xóa hết những cái không cần thiết. Mong anh chị giúp đỡ!
 

File đính kèm

Upvote 0
Bạn xem trong file đính kèm; Chỉ mới xong fần I, các fần còn lại x in nhường bạn.

Các l ưu í cần thiết:

(1) Đây là macro của fần I:

PHP:
Private Sub CboMucDich_Change()
  Dim Loai As String
  Dim Rng As Range, sRng As Range
   
 Set Rng = Range([o56], [iu56].End(xlToLeft))
 Loai = [C8].Value
 Set sRng = Rng.Find(Loai, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    [b14].Resize(10).Value = sRng.Offset(3).Resize(10).Value
    [f14].Resize(10).Value = sRng.Offset(3, 1).Resize(10).Value
    [H14].Resize(10).Value = sRng.Offset(3, 2).Resize(10).Value
 End If
End Sub

(2) Macro xài cho CSDL rất dị ứng với ô trộn; Vậy mình đã bỏ trộn các ô dòng 56 rồi. Tuy vậy mỹ quan cũng không bớt bao nhiêu!

(...) Chúc bạn sớm th ành công với 2 công việc còn lại!
 

File đính kèm

Upvote 0
Các l ưu í cần thiết:

(1) Đây là macro của fần I:

PHP:
Private Sub CboMucDich_Change()
  Dim Loai As String
  Dim Rng As Range, sRng As Range
   
 Set Rng = Range([o56], [iu56].End(xlToLeft))
 Loai = [C8].Value
 Set sRng = Rng.Find(Loai, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    [b14].Resize(10).Value = sRng.Offset(3).Resize(10).Value
    [f14].Resize(10).Value = sRng.Offset(3, 1).Resize(10).Value
    [H14].Resize(10).Value = sRng.Offset(3, 2).Resize(10).Value
 End If
End Sub

(2) Macro xài cho CSDL rất dị ứng với ô trộn; Vậy mình đã bỏ trộn các ô dòng 56 rồi. Tuy vậy mỹ quan cũng không bớt bao nhiêu!

(...) Chúc bạn sớm th ành công với 2 công việc còn lại![/QUO
Mình làm được rồi. Cám ơn bạn rất nhiều!
 
Upvote 0
Anh SA_DQ ơi, cho em hỏi một câu nữa nhé!
Hai phần kia em làm được rồi. Nhưng bây giờ em muốn tách cái đó thành hai sheet khác nhau. Sheet 1 (FA) chứa phương án cần lập, sheet 2 (DSFA) chứa dự liệu các phương án (Trồng lúa, Kinh doanh,....) thì code phải sửa thế nào, em làm mãi mà không ra.

Cảm ơn Anh nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Macro mới của bạn đây, xài thử coi sao.

PHP:
Option Explicit
Private Sub CboMucDich_Change()
  Dim Loai As String
  Dim Rng As Range, sRng As Range, Sh As Worksheet
   
 Set Sh = ThisWorkbook.Worksheets("DSFA")
 
 Set Rng = Sh.Range(Sh.[A46], Sh.[iu46].End(xlToLeft))
 Loai = [C8].Value
 Set sRng = Rng.Find(Loai, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    [b14].Resize(10).Value = sRng.Offset(3).Resize(10).Value
    [f14].Resize(10).Value = sRng.Offset(3, 1).Resize(10).Value
    [H14].Resize(10).Value = sRng.Offset(3, 2).Resize(10).Value
 End If
End Sub
 
Upvote 0
Xin Gúp về code VBA Cho kết hợp hàm Match và index.
File đính kèm có pass khóa công thức là 020585, e hông muốn hiện công thức trong cột " I" - Sheet "TOHOP" Và tương tự cho các Sheet còn lại ạ!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom