Lặp qua Sách và Trang tính trong Excel VBA
Dưới đây, chúng ta sẽ xem xét một chương trình trong Excel VBA lặp qua tất cả các sổ làm việc và trang tính đang mở và hiển thị tất cả các tên.
Tình huống:
Thêm các dòng mã sau vào nút lệnh:
-
Đầu tiên, chúng ta khai báo hai đối tượng và một biến. Một đối tượng kiểu Workbook chúng ta gọi là book, một đối tượng kiểu Worksheet mà chúng ta gọi là sheet và một biến kiểu String mà chúng ta gọi là text.
Dim book As Workbook, sheet As Worksheet, text As String
-
Chúng tôi muốn lặp qua tất cả các sổ làm việc đang mở. Để đạt được điều này, hãy thêm dòng mã sau:
For Each book In Workbooks
-
Chúng tôi viết văn bản “Workbook:”, tên của sổ làm việc và văn bản “Worksheets:” “vào văn bản biến.
text = text & "Workbook: " & book.Name & vbNewLine & "Worksheets: " & vbNewLine
Lưu ý: bạn có thể sử dụng toán tử & để nối (nối) các phần tử. Để bắt đầu một dòng mới, bạn có thể sử dụng vbNewLine.
-
Để lặp qua tất cả các trang tính của sổ làm việc, hãy thêm dòng mã sau:
For Each sheet In book.Worksheets
5 Chúng ta viết tên của các bảng tính của một bảng tính vào văn bản biến
text = text & sheet.Name & vbNewLine
-
Đóng vòng lặp thứ hai.
Next sheet
-
Thêm một dòng trắng.
text = text & vbNewLine
-
Đừng quên đóng vòng lặp đầu tiên.
Next book
-
Cuối cùng, chúng tôi hiển thị văn bản biến bằng cách sử dụng MsgBox.
MsgBox text
-
Kiểm tra chương trình Trước khi bạn nhấp vào nút lệnh, hãy đặt tên mô tả cho các trang tính của bạn và mở một sổ làm việc trống với ba trang tính.
Kết quả: