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
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