Giải thích giúp em code này (1 người xem)

Liên hệ QC

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

thanhlong68

Thành viên chính thức
Tham gia
17/11/12
Bài viết
66
Được thích
2
Em có đoạn code này, em muốn hỏi hiểu như em có đúng không và chỗ nào chưa hiểu thì giải thích giúm em với
PHP:
Public Sub loc()
On Error Resume Next
Dim Rng(), Arr(1 To 65000, 1 To 10), Arr2(1 To 10, 1 To 10), I As Long, J As Long, k As Long 
Dim ws As Worksheet, N As Long, DH As String, Ngay As Long, DK As Long, KX As Long, e As String
For Each ws In Worksheets
If Sheet1 Then
1.Rng = ws.Range(ws.[B2], ws.[b65000].End(xlUp)).Offset(, -1).Resize(, 19).Value
2.For I = 1 To UBound(Rng, 1)
3.If Rng(I, 1) <> "" Then e = Rng(I, 1)
4.If Rng(I, 4) > 0 Then
5.k = k + 1
6.If k <= 65000 Then
7.Arr(k, 1) = k
Arr(k, 2) = Rng(I, 2)
Arr(k, 3) = Rng(I, 3)
End If
End If
Next I
End If
Next ws
With Sheet2
.[A2].Resize(65000, 4).Value = Arr
.[A2].Resize(k, 4).Borders.Weight = xlThin
End With
End Sub
Trong đoạn code trên:
"Rng()" là khai báo kiểu gì?
"Arr(1 To 65000, 1 To 10)" 1 to 65000 là hàng 1 tới hàng cuối
To 10 là cột 1 tới cột 10
1.Đặt Rng bằng mảng từ B2 tới B65000 kéo dài tới cột 19 có phải không?
2. Chưa hiểu từ câu 2 tới số 7
Nhờ mọi người giải thích giùm em.
 
- Rng() : là khai báo kiểu biến mảng
- Arr(1 To 65000, 1 To 10) : Khai báo mảng Arr là mảng 2 chiều, bạn tưởng tượng như Range nó có 65000 hàng và 10 cột
1. Nạp dữ liệu cho mảng Rng(), bạn muốn biết vùng gán là vùng nào trên sheet thì bạn thêm câu lệnh này vào code nằm giữa dòng số 1 và số 2 mà bạn đã đánh số ở trên :

Msgbox "Vung gan cho Rng:" & ws.Range(ws.[B2], ws.[b65000].End(xlUp)).Offset(, -1).Resize(, 19).Address

Từ 2 trở đi nếu không có kiến thức chút xíu về VBA và file đính kèm thì thật khó để giải thích cho bạn hiểu vì đó là các hoạt động của các phần từ trong mảng, thuật toán xử lý mảng, dùng vòng lặp FOR duyệt qua các phần tử của mảng, xét điều kiện thỏa mãn ==> Gán giá trị.....==> Đổ kết quả tìm được ra sheet....
Bạn nên tham gia 1 lớp lập trình VBA căn bản của GPE để có những kiến thức căn bản đã nhé. Khi đó mọi người giải thích, bạn sẽ dễ hiểu hơn.

Thanks!
 
Upvote 0
tham gia học online có không ạ?
Học Online không hiệu quả vì còn phụ thuộc vào chất lượng đường truyền internet và chỉ có thể học kiểu 1 thầy - 1 trò mới mong có chút hiệu quả :)
Nếu bạn ở Sài Gòn có thể tham khảo tại link này nhé, các thầy của GPE sẽ giúp bạn tiến sát đến những điều lý thú của VBA hơn!
http://www.giaiphapexcel.com/forum/showthread.php?85545
Chúc bạn cuối tuần vui vẻ!
 
Upvote 0

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

Back
Top Bottom