Chọn tất cả các trang tính hiển thị trong Macro (Microsoft Excel)
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 (3058) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: