Trong Excel, việc chọn tất cả các trang tính hiển thị dễ dàng như nhấp chuột phải vào bất kỳ tab trang tính nào và chọn Chọn Tất cả Trang tính. Tuy nhiên, việc hoàn thành nhiệm vụ tương tự với mã VBA khó hơn.

Trợ giúp trực tuyến của Excel đề xuất sử dụng chức năng Mảng với bộ sưu tập Trang tính để chọn trang tính theo tên. Điều này hoạt động hiệu quả khi bạn biết tên của từng trang tính trong sổ làm việc. Điều này đặt ra một vấn đề khi bạn muốn tạo mã chung để chọn tất cả các trang tính cho bất kỳ sổ làm việc nào. Tin tốt là bạn có thể sử dụng một biến thể của kỹ thuật của Microsoft để tham chiếu các trang tính theo số chỉ mục. Dưới đây là mã:

Sub SelectSheets()

Dim myArray() As Variant     Dim i As Integer     For i = 1 To Sheets.Count         ReDim Preserve myArray(i - 1)

myArray(i - 1) = i     Next i     Sheets(myArray).Select End Sub

Điều này hoạt động tốt, trừ khi sổ làm việc chứa các trang tính ẩn, trong đó Trang tính (i) .Vible = False. Tất nhiên, mã trên có thể được điều chỉnh để bỏ qua các trang tính ẩn:

Sub SelectSheets()

Dim myArray() As Variant     Dim i As Integer     Dim j As Integer     j = 0     For i = 1 To Sheets.Count         If Sheets(i).Visible = True Then             ReDim Preserve myArray(j)

myArray(j) = i             j = j + 1         End If     Next i     Sheets(myArray).Select End Sub

Tuy nhiên, có một tham số ít được biết đến của phương thức Chọn: tham số Thay thế. Bằng cách sử dụng tham số Replace, việc chọn tất cả các trang hiển thị trở nên dễ dàng hơn nhiều:

Sub SelectSheets1()

Dim mySheet As Object     For Each mySheet In Sheets         With mySheet             If .Visible = True Then .Select Replace:=False         End With     Next mySheet End Sub

Lưu ý rằng mySheet được định nghĩa là kiểu dữ liệu Đối tượng, thay vì kiểu dữ liệu Trang tính. Điều này được thực hiện vì trong quá trình thử nghiệm, tôi đã gặp sự cố với các Trang biểu đồ — chúng sẽ không được chọn vì chúng không thuộc loại Trang tính.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11600) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: