Tôi muốn lặp qua một dải ô theo thứ tự bảng chữ cái để tạo báo cáo theo thứ tự bảng chữ cái. Tôi không muốn sắp xếp các tờ như thứ tự ban đầu là quan trọng.Excel vba lặp qua phạm vi theo thứ tự abc
Sub AlphaLoop()
'This is showing N and Z in uppercase, why?
For Each FirstLetter In Array(a, b, c, d, e, f, g, h, i, j, k, l, m, N, o, p, q, r, s, t, u, v, w, x, y, Z)
For Each SecondLetter In Array(a, b, c, d, e, f, g, h, i, j, k, l, m, N, o, p, q, r, s, t, u, v, w, x, y, Z)
For Each tCell In Range("I5:I" & Range("I20000").End(xlUp).Row)
If Left(tCell, 2) = FirstLetter & SecondLetter Then
'Do the report items here
End If
Next
Next
Next
End Sub
Lưu ý rằng mã này chưa được kiểm tra, chỉ sắp xếp theo 2 chữ cái đầu tiên và tốn thời gian vì nó phải lặp qua văn bản 676 lần. Có cách nào tốt hơn thế này không?
Cảm ơn bạn đã trả lời tất cả mọi người, nhiều phương pháp khác nhau tại đây. Tôi chỉ đang cố chọn cái nào để sử dụng. – user2967539
Bất cứ ai có bất kỳ ý tưởng tại sao N và Z trở lại chữ hoa trong mã trên? VBA có hoạt động không? – user2967539
Bạn có thể đã khai báo (cùng một lúc) một biến hoặc thủ tục có tên là "N" và "Z" và đó là lý do tại sao trình chỉnh sửa đã thay đổi chúng thành chữ hoa. FWIW, mảng của bạn không hoạt động ở tất cả những gì bạn nghĩ khi bạn đã điền nó với các biến a, b, c, v.v. thay vì các ký tự "a", "b", "c". Có vẻ như không nghi ngờ gì rằng bạn không sử dụng Option Explicit và do đó trình biên dịch cho phép bạn tạo ra các lỗi cơ bản như sử dụng các biến không khai báo. ** Sử dụng Option Explicit! ** [Xem bài SO này.] (Http://stackoverflow.com/questions/2454552/whats-an-option-strict-and-explicit) –