Vòng lặp VBA qua mảng / Đối với từng mục trong mảng

Hướng dẫn này sẽ dạy bạn cách lặp qua Mảng trong VBA.

Có hai cách chính để lặp qua Mảng bằng VBA:

  • Cho mỗi vòng lặp - Vòng lặp For Each sẽ lặp qua từng mục trong mảng.
  • Cho vòng tiếp theo - Vòng lặp For Next sẽ lặp qua các vị trí bắt đầu và kết thúc được chỉ định của mảng (Chúng ta có thể sử dụng Hàm UBound và LBound để lặp qua toàn bộ mảng).

Đối với mỗi mục trong mảng

Các Cho mỗi vòng lặp cho phép bạn lặp qua từng phần tử của mảng.

12345678910111213141516171819 Sub LoopForArrayStatic ()'khai báo một mảng biến thểDim strNames (1 đến 4) dưới dạng chuỗi'điền mảngstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'khai báo một biến thể để giữ phần tử mảngLàm mờ mục dưới dạng biến thể'lặp qua toàn bộ mảngĐối với từng mục trong strNames'hiển thị phần tử trong cửa sổ gỡ lỗi.Mục Debug.PrintVòngKết thúc Sub

Thủ tục trên sẽ lặp qua tất cả các tên trong mảng.

Cho vòng tiếp theo

Vòng lặp For Next sẽ lặp qua từng mục tại một vị trí bắt đầu và kết thúc được chỉ định của mảng.

Vòng qua một phần của mảng

Bạn có thể chỉ định thủ công vị trí bắt đầu và kết thúc cho vòng lặp của mình. Điều này có thể phù hợp nếu bạn biết kích thước mảng của mình và / hoặc bạn chỉ muốn lặp lại một phần của mảng.

12345678910111213141516 Sub LoopForNextStatic ()'khai báo một mảng biến thểDim strNames (1 đến 4) dưới dạng chuỗi'điền mảngstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'khai báo một số nguyênDim i As Integer'vòng lặp từ vị trí 2 đến vị trí 3 của mảngĐối với i = 2 đến 3'hiển thị tên trong cửa sổ ngay lập tứcDebug.Print strNames (i)Tiếp theo tôiKết thúc Sub

Trong ví dụ trên, chúng ta đã lặp qua vị trí 2 và 3 của mảng. Cửa sổ ngay lập tức sẽ trả về các tên như sau.

Vòng qua toàn bộ mảng

Tiếp theo, chúng ta sẽ sử dụng các hàm UBound và LBound để lặp lại toàn bộ một mảng. Điều này cực kỳ hữu ích nếu vị trí bắt đầu và kết thúc của mảng có thể thay đổi (ví dụ: Mảng động):

123456789101112131415161718 Sub LoopForNextDynamic ()'khai báo một mảng biến thểDim strNames () Dưới dạng chuỗi'khởi tạo mảngReDim strNames (1 đến 4)'điền vào mảngstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'khai báo một số nguyênDim i As Integer'vòng lặp từ giới hạn dưới của mảng đến giới hạn trên của mảng - toàn bộ mảngĐối với i = LBound (strNames) Đến UBound (strNames)'hiển thị tên trong cửa sổ ngay lập tứcDebug.Print strNames (i)Tiếp theo tôiKết thúc Sub

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave