Hỏi về code .

Liên hệ QC

dungvovan

Thành viên mới
Tham gia
13/12/06
Bài viết
36
Được thích
18
Chào cả nhà .
Chào SG .
Mình có đọc 1 bài do Chị Hạnh Dung gởi ,hướng dẩn cách lọc dử liệu với code như sau :

PHP:
 Sub CopyRecord()
Dim i, j, k, n, n1 As Integer
Dim temp
'n số mẫu tin của sheet 3
'n1 số mẫu tin của sheet 1
n = 100
n1 = 1500
'vòng lặp duyệt từ mẫu tin thứ 2 đến mẫu tin cuối cùng của sheet chứa mã nhân viên(trong ví dụ là 100)
For i = 2 To n
'lưu giái trị của hàng thứ i, cột thứ 2 của sheet3 vào biến temp (trong ví dụ là mã NV).
'như vậy biến temp sẽ lần lượt chứa mã số nhân viên của từng người có trong danh sách
temp = Sheet3.Cells(i, 2)
'vòng lặp duyệt từ mẫu tin thứ 2 đến mẫu tin cuối cùng của sheet chưa danh sách nhân viên
For j = 2 To n1
'kiểm tra nếu mã nhân viên trong Sheet1 (danh sách nhân viên) trùng với biến temp thì tạo tiếp vòng lặp duyệt qua các cột của mẫu tin tìm thấy.
If temp = Sheet1.Cells(j, 2) Then
k = 2
Do While Not IsEmpty(Sheet1.Cells(j, k))
'Cập nhật các ô vào sheet2
Sheet2.Cells(i, k) = Sheet1.Cells(j, k)
k = k + 1
Loop
Exit For
End If
Next
Next
End Sub

Sau khi chạy , code sẽ chép mã số NV vào sheet2 .
Vấn đề là code chỉ lấy 1 record trong DS NV , cho dù trong DS có nhiều hơn 1 record .Mình muốn nhờ các Anh Chị giúp mình sửa lại để có thể copy hết các record có trong DSNV , sau khi hết 1 Mã NV thì mới tiếp tục sang Mã NV mới .
Cảm ơn Anh Chị nhiều nhiều .
 
Chỉnh sửa lần cuối bởi điều hành viên:
-Bạn bỏ câu lệnh Exit For để vòng lặp j tiếp tục duyệt.
-Thêm 1 biến thay cho biến i trong câu lệnh Sheet2.Cells(i, k)...
Mã:
Sub CopyRecord()
Dim i, j, k, n, n1 As Integer
Dim temp, t
n = 100
n1 = 1500
t = 2
For i = 2 To n
     temp = Sheet3.Cells(i, 2)
         For j = 2 To n1
            If temp = Sheet1.Cells(j, 2) Then
                  k = 2
                     Do While Not IsEmpty(Sheet1.Cells(j, k))
                         Sheet2.Cells(t, k) = Sheet1.Cells(j, k)
                            k = k + 1
                    Loop
                 t = t + 1
            End If
        Next
Next
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom