Bài viết này sẽ thảo luận về đối tượng ActiveSheet trong VBA. Nó cũng sẽ thảo luận về cách kích hoạt, chọn và đi tới Trang tính (và nhiều hơn nữa). Đọc Hướng dẫn trang tính VBA đầy đủ của chúng tôi để biết thêm thông tin về cách làm việc với trang tính trong VBA.
Bảng hoạt động
Trong VBA, ActiveSheet đề cập đến Trang tính hiện đang hoạt động. Chỉ một Trang tính có thể hoạt động tại một thời điểm.
Kích hoạt Trang tính (Thiết lập Trang tính Hoạt động)
Để đặt ActiveSheet, hãy sử dụng Worksheet. Kích hoạt:
1 | Trang tính ("Đầu vào"). Kích hoạt |
Lệnh Kích hoạt Trang tính sẽ thực sự “đi đến” trang tính, thay đổi Trang tính hiển thị.
Ví dụ trên sử dụng tên Trang tính (Tab). Thay vào đó, bạn có thể sử dụng tên mã VBA cho trang tính:
1 | Sheet1.Activate |
Tên trang tính hoạt động
Để lấy Tên ActiveSheet:
1 | msgbox ActiveSheet.name |
Trang tính đã chọn so với Trang tính hoạt động
Tại bất kỳ thời điểm nào, chỉ có một Trang tính có thể là Trang tính Hoạt động. Tuy nhiên, có thể chọn nhiều Trang tính cùng một lúc.
Khi nhiều Trang tính được chọn, chỉ Trang tính “cao nhất” mới được coi là đang hoạt động (Bảng hoạt động).
Chọn trang tính
Nếu bạn muốn chọn một trang tính thay vì kích hoạt nó. Sử dụng .Select để thay thế.
Chọn trang tính theo tên tab
Thao tác này sẽ chọn một Trang tính dựa trên Tên tab Trang tính của nó
1 | Trang tính ("Đầu vào"). Chọn |
Chọn trang tính theo số chỉ mục
Thao tác này sẽ chọn một Trang tính dựa trên vị trí của nó so với các tab khác
1 | Trang tính (1). Chọn |
Chọn trang tính với tên mã VBA
1 | Sheet1.Select |
Việc chọn trang tính theo tên mã có thể ngăn ngừa lỗi do thay đổi tên trang tính.
Chọn trang tính hiện tại
Để chọn Trang tính hiện tại, hãy sử dụng đối tượng Trang tính Hoạt động:
1 | ActiveSheet.Select |
Thêm Kích hoạt / Chọn Ví dụ về Trang tính
Đặt ActiveSheet thành Biến
Thao tác này sẽ gán ActiveSheet cho một Biến Đối tượng Trang tính.
123 | Dim ws As WorksheetĐặt ws = ActiveSheet |
Thay đổi tên ActiveSheet
Điều này sẽ thay đổi Tên ActiveSheet.
1 | ActiveSheet.Name = "NewName" |
Với ActiveSheet
Sử dụng With Statement cho phép bạn sắp xếp hợp lý mã của mình khi làm việc với các đối tượng (chẳng hạn như Sheets hoặc ActiveSheet).
12345 | Với ActiveSheet.Name = "StartFresh".Cells.Clear.Range ("A1"). Giá trị = .NameKết thúc với |
Lưu ý rằng bạn không cần lặp lại “ActiveSheet” trước mỗi dòng mã. Đây có thể là một tiết kiệm thời gian rất lớn khi làm việc với một danh sách dài các lệnh.
Lặp qua các trang tính đã chọn
Macro sau sẽ Vòng qua tất cả các trang tính đã chọn, hiển thị tên của chúng.
12345678 | Sub GetSelectedSheetsName ()Dim ws As WorksheetĐối với mỗi ws Trong ActiveWindow.SelectedSheetsMsgBox ws.NameTuần tiếp theoKết thúc Sub |
GoTo Trang tiếp theo
Mã này sẽ chuyển đến Trang tính tiếp theo. Nếu ActiveSheet là Trang tính cuối cùng, thì nó sẽ chuyển đến Trang tính đầu tiên trong Sổ làm việc.
12345 | If ActiveSheet.Index = Worksheets.Count ThenTrang tính (1). Kích hoạtKhácActiveSheet.Next.ActivateKết thúc nếu |