26/05/2018, 09:58

Excel - Vòng lặp For trong VBA

Bài viết liên quan Với những người thường xuyên sử dụng phần mềm Excel thì khái niệm về các hàm trong excel không còn xa lạ nữa nhưng không phải ai cũng biết các sử ...

Với những người thường xuyên sử dụng phần mềm Excel thì khái niệm về các hàm trong excel không còn xa lạ nữa nhưng không phải ai cũng biết các sử dụng tính năng nâng cao Developer để lập trình các hàm chạy trong excel. Khi sử dụng công cụ này bạn có thể làm rất nhanh chóng những việc mà nếu làm thông thường bằng tay bạn sẽ cực kỳ vất vả hoặc thậm chí không thể làm được.

Hướng dẫn cách sử dụng vòng lặp For trong VBA

Bước 1 : Để mở tính năng Developer trong excel, bạn vào File > Option:

Tiếp theo bạn vào tab Customize Ribbon rồi tích vào mục Developer rồi click OK:

Bước  2 : Trong bài viết này tôi sẽ hướng dẫn bạn thực hiện 2 việc là Đánh Số Thứ Tự Từ 1 đến 10000 trong cột A bắt đầu từ ô A5 và In 10000 chữ "Hello World" trong 1 cột Excel là cột B bắt đầu từ ô B5. Để thực hiện việc này bạn vào tab DEVELOPER trên thanh công cụ rồi click vào Visual Basic:

Lúc này một công cụ lập trình VBA sẽ được mở ra. Bạn click đúp vào sheet mà bạn đang sử dụng để mở ra trang cho phép các câu lệnh thực hiện của vòng For:

Bước 3 : Bạn gõ vào đó đoạn Code của vòng For như hình:

Sub SoThuTu ()

   Dim i As Integer
   For i = 1 To 1000
   Cells( i+4, 1) = 1
   Next i

End Sub
 

Trong đó:

- Dòng Sub SoThuTu() là để khai báo 1 hàm Có tên là SoThuTu.
- Dòng Dim i As Integer là để khai báo một biến i có kiểu dữ liệu là số nguyên.
- Dòng For i = 1 To 10000 là khai báo vòng lặp được thực hiện với giá trị i chạy từ 1 đến 10000.
- Dòng Cells ( i+4, 1) = 1 là nội dung của vòng For với ý nghĩa là : Với mỗi giá trị i đang chạy thì ô excel thứ i+4 của cột thứ 1 (tức cột A) sẽ được gán bằng giá trị của biến i.

Bạn chú ý, ở trong ví dụ này tôi thực hiện in số từ ô A5 chứ không phải từ ô A1 nên trong vòng For tôi nhập vào mã lệnh là i + 4. Còn nếu bạn in từ ngay ô A1 thì bạn chỉ việc gõ vào mã lệnh là Cells (i, 1) = 1 là được.

- Dòng Next i là câu lệnh để cho phép biến i chạy sang giá trị kế tiếp.
- Dòng End Sub là dòng để kết thúc hàm SoThuTu sau khi hàm thực hiện xong với giá trị i = 10000.

Bước  4 : Sau khi gõ đầy đủ và chính xác đoạn code trên bạn click vào biểu tượng của nút Save như hình. Và ở bảng hiện ra bạn chọn Yes:

Bước 5 : Để chạy hàm bạn vừa gõ vào, bạn click vào nút hình tam giác màu xanh lá cây như trong hình:

Ở cửa sổ mới hiện ra bạn chọn Run:

Và lúc này từ ô A5 trở đi đã được đánh số tăng dần từ 1 đến 10000:

Bạn có thể kiểm tra xem giá trị 10000 có được in đầy đủ hay không bằng cách gõ vào ô di chuyển giá trị A10004 để di chuyển ngay tới ô này. Và đây là kết quả chứng tỏ hàm đã in đúng 10000 giá trị từ 1 đến 10000:

Bước 6 : Để in 10000 chữ "Hello World" trong cột B từ ô B5 thì bạn chèn đoạn mã lệnh sau vào hàm SoThuTu:

Ở đây dòng Cells(i+4, 2) = “Hello World” là để chỉ : Với mỗi giá trị i đang chạy thì ô excel thứ i+4 của cột thứ 2 (tức cột B) sẽ được gán vào đoạn text là Hello World.

Nhập xong bạn mã trên bạn click vào nút Save như trên và ở bảng hiện ra bạn chọn Yes:

Tiếp theo bạn click vào nút hình tam giác màu xanh lá cây như ở trên để chạy chương trình:

Ở cửa sổ mới hiện ra bạn chọn Run:

Và lúc này từ ô B5 trở đi đều đã được gán vào đoạn text là Hello World:

Bạn có thể kiểm tra xem chữ Hello World có được in đầy đủ hay không bằng cách gõ vào ô di chuyển giá trị B10004 để di chuyển ngay tới ô này. Và đây là kết quả chứng tỏ hàm đã in đúng:

http://thuthuat.taimienphi.vn/vong-lap-for-trong-vba-trong-excel-2285n.aspx
Vậy là bạn đã biết cách sử dụng vòng lặp For trong VBA rồi đó. Với vòng lặp For này bạn có thể giải quyết được nhiều bài toán trong công việc của mình. Nó đặc biệt hữu ích và sẽ giúp bạn tiết kiệm rất nhiều công sức và thời gian so với làm bằng tay thông thường.


0