FPT_online
Thành viên hoạt động



- Tham gia
- 27/10/13
- Bài viết
- 133
- Được thích
- 16
PHP:
Public Sub loc()Dim Rng(), Arr(1 To 100, 1 To 10), Arr2(1 To 100, 1 To 9), I As Long, J As Long, k As LongDim ws As Worksheet, N As Long, DH As String, Ngay As Long, DK As Long, KX As Long For Each ws In Worksheets If IsNumeric(Left(ws.Name, 1)) Then Rng = ws.Range(ws.[B2], ws.[b65000].End(xlUp)).Offset(, -1).Resize(, 17).Value Ngay = ws.[Q1].Value For I = 1 To UBound(Rng, 1) If Rng(I, 1) <> "" Then DH = Rng(I, 1) If Rng(I, 17) > 0 Then k = k + 1 If k <= 100 Then Arr(k, 1) = k For N = 2 To 8 Arr(k, N) = Rng(I, N) Next N Arr(k, 8) = Rng(I, 17) Arr(k, 7) = DH Else KX = KX + 1 Arr2(KX, 1) = k For N = 2 To 8 Arr2(KX, N) = Rng(I, N) Next N Arr2(KX, 8) = Rng(I, 18) Arr2(KX, 7) = DH End If End If Next I End IfNext wsWith Sheet1 .[A1].Resize(100, 10).Value = Arr If [C1] <> "" Then .[K1].Value = Ngay .[K1].ClearContents End If End WithEnd Sub
Em rất thích tìm hiểu về code VBA em có một số thắc mắc nhờ các thầy chỉ giúp
- Tại sao có một số biến cần khai báo là "Dim N as long, hoặc dim DH as string, nhưng một số cái lại chỉ cần khai báo là Dim Rng(), hoặc khai báo như Arr(1 to 100, 1 to 10) em chưa hiểu từng kiểu khai báo này các thầy giúp em trong phần này với
-"If IsNumeric(Left(ws.Name, 1)) Then" Em thấy hình như có cả hàm left trong này nhưng khi nào thì có thể chèn vào được ạ
Code này em chắp vá từ các bài của các thầy viết nên có thể nhìn lủng củng vậy các thầy sửa lại giúp em cho ngắn gọn và chuẩn luôn với. Em cám ơn nhiều

