Xin chỉ giúp Excel báo lỗi điều kiện của mảng

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
Nhờ anh/chị xem giúp câu lệnh Select bị bắt lỗi mảng b (cột b) này hoài. trong khi cửa sổ Local thì thấy mảng o(cột O) mảng kết quả trả về giá trị đúng. Xin chỉ giúp ạ, Xin cảm ơn
1634423281658.png
 

File đính kèm

  • TK duyeths.xlsb
    1.1 MB · Đọc: 3
Upvote 0
Nhờ anh/chị xem giúp câu lệnh Select bị bắt lỗi mảng b (cột b) này hoài. trong khi cửa sổ Local thì thấy mảng o(cột O) mảng kết quả trả về giá trị đúng. Xin chỉ giúp ạ, Xin cảm ơn
View attachment 267840
Bạn sửa lại code nhé.
Mã:
Sub mau()
Dim b(), o()
Dim i As Long
Dim LR As Long
Set Sh = Sheets("DsHoTroCovid")
    LR = Sh.Range("B" & Rows.Count).End(xlUp).Row
    b = Sh.Range("B2:B" & LR).Value
    ReDim o(1 To UBound(b), 1 To 1)
    
    For i = 1 To UBound(b)
    If b(i, 1) = "NQ11621" Then
        o(i, 1) = "3B"
    Else
        o(i, 1) = "3A"
    End If
    Next
    Sh.[O2].Resize(UBound(b), 1) = o
End Sub
Sai ở chỗ khai báo lại kích thước mảng o (redim o(1 to LR,1))
Sai ở chỗ gán mảng xuống sh (Sheet1.range("o2").resize(ubound(b(i,1),1)
Duyệt các phần tử của mảng không nên dùng chỉ số của Sh (for i=1 to LR) thay bằng For i = 1 to Ubound(b)
Nên sử dụng IF... then với 2 giá trị cần gán (3A, 3B) có lẽ hay hơn là select ....case
 
Upvote 0
Bạn sửa lại code nhé.
Mã:
Sub mau()
Dim b(), o()
Dim i As Long
Dim LR As Long
Set Sh = Sheets("DsHoTroCovid")
    LR = Sh.Range("B" & Rows.Count).End(xlUp).Row
    b = Sh.Range("B2:B" & LR).Value
    ReDim o(1 To UBound(b), 1 To 1)
   
    For i = 1 To UBound(b)
    If b(i, 1) = "NQ11621" Then
        o(i, 1) = "3B"
    Else
        o(i, 1) = "3A"
    End If
    Next
    Sh.[O2].Resize(UBound(b), 1) = o
End Sub
Sai ở chỗ khai báo lại kích thước mảng o (redim o(1 to LR,1))
Sai ở chỗ gán mảng xuống sh (Sheet1.range("o2").resize(ubound(b(i,1),1)
Duyệt các phần tử của mảng không nên dùng chỉ số của Sh (for i=1 to LR) thay bằng For i = 1 to Ubound(b)
Nên sử dụng IF... then với 2 giá trị cần gán (3A, 3B) có lẽ hay hơn là select ....case
Cảm ơn rất nhiều ạ
 
Upvote 0
Web KT

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

Back
Top Bottom