Xin giúp fix lỗi runtime error 9 subscript out of range

Liên hệ QC

vmhieu.cdcs

Thành viên mới
Tham gia
21/5/09
Bài viết
26
Được thích
2
Xin chào mọi người
Xin mọi người chỉ giúp mình gỡ lỗi ở chỗ này
Mình có 1 code tách sheet hàng loạt. Mình dùng mảng và Dictionnary

Nhưng khi hiển thị kết quả ra mảng kg() thì bị báo lỗi runtime error 9 subscript out of range. Mình nghiệm mấy ngày nay mà chưa ra,
Mong các bạn giúp mình fix lỗi với. Xin cảm ơn các bạn rất nhiều
CODE

Sub Tao_sh()
Dim dic As Object, arr(), kq()
Dim lr As Long, i As Long, j As Long, h As Long
Dim key As Variant

Set dic = CreateObject("Scripting.Dictionary") 'khoi tao thu vien
lr = data.Range("A" & Rows.Count).End(xlUp).Row ' tim dong cuoi
arr = data.Range("A2:N" & lr).Value ' khai bao mang arr

For i = 1 To UBound(arr, 1)

If Not dic.exists(arr(i, 1)) Then ' neu chua ton tai
dic.Add arr(i, 1), arr(i, 1)
End If
Next i

For Each key In dic.keys ' phat hien key trong thu vien
ReDim kg(1 To UBound(arr, 1), 1 To 10) ' khai bao lai mang ket qua
h = 0 ' gan gia tri ban dau

For j = 1 To UBound(arr, 1) ' chay vong lap tim key
If arr(j, 1) = dic(key) Then
h = h + 1
kq(h, 1) = arr(j, 5) Báo lỗi ở dòng này
kq(h, 2) = arr(j, 6)
kq(h, 3) = arr(j, 13)
kq(h, 4) = arr(j, 4)
kq(h, 5) = arr(j, 1)
kq(h, 6) = arr(j, 2)
kq(h, 7) = arr(j, 3)
kq(h, 8) = arr(j, 9)
kq(h, 9) = arr(j, 7)
kq(h, 10) = arr(j, 8)


End If
Next j

Worksheets.Add after:=Worksheets(Worksheet.Count)
ActiveSheet.Name = dic(key)
Range("A2").Resize(h, 10).Value = kq()
Range("A2:M" & dic(key).Count).Sort key = Range("G").Sort

Next key
End Sub
 

File đính kèm

  • TCS 082021.xlsm
    1.3 MB · Đọc: 3
Upvote 0
Cám ơn các bạn đã hỗ trợ, Code mình đã chạy ổn rồi.

XIN CHÂN THÀNH CÁM ƠN
 
Upvote 0
Rút kinh nghiệm không khai báo biến bằng chữ thường với những chữ dễ gây nhầm lẫn. Dễ phân biệt KQ với KG hơn là kq với kg chứ nhỉ.
kq với kw thì có thể nhầm chứ kq và kg (cách 3 cột, 1 dòng) chỉ có thể do cẩu thả, sửa code một hồi quên mất tên biến.
 
Upvote 0
Web KT

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

Back
Top Bottom