Debug.Print ThisWorkbook.Worksheets.Count
và kết quả là trong tài liệu Excel này, chúng ta có 1 Worksheet. Tuy nhiên, ở câu lệnh thứ 2:
Debug.Print ThisWorkbook.Sheets.Count
kết quả của câu lệnh này lại là 5. Tại sao lại như vậy? Ok, chúng ta còn có thể nhìn thấy một đối tượng nữa ở trong cửa sổ Project, đó là đối tượng Chart2
và nếu bạn nào đã từng bấm nhầm phím tắt ALT + F11 thì, bạn sẽ có thể tạo ra được 1 sheet mà chỉ có biểu đồ, không có gì khác ngoài biểu đồ, chúng ta có thể gọi là Chart Sheet, và Chart Sheet này cũng có mặt trong các thành viên của đối tượng Sheets ở trong Thisworkbook.Sheets
. Tuy nhiên, như vậy mới có 2, vậy con số 5 ở đây là ở đâu ra?
ThisWorkbook.Worksheets("Data")
Nếu chúng ta chỉ làm việc trong phạm vi 1 workbook, thì bạn có thể tham chiếu Worksheets “Data” như sau:
Worksheets("Data")
Set dataSheet = Worksheets("Data")
vì Worksheet cũng là Sheet, nên chúng ta có thể tham chiếu tới Sheet Data như sau:
Set dataSheet = Sheets("Data")
Set dataSheet = Worksheets(1)
Lưu ý Trong hình sau, chúng ta muốn tham chiếu tới Worksheet có tên là Sheet1
theo thứ tự trên Sheetbar của Excel, thứ tự của đối tượng này là 1 chứ không phải là 5, bởi vì 4 đối tượng trước nó không thuộc vào loại Worksheet.
Nếu chúng ta tham chiếu bằng Sheets thì code sẽ là:
Set dataSheet = Sheets(5)
dataSheet(Data)
– tên Sheet được để trong ngoặc đơnWorksheets("Data").Activate
Sheets("Data").Activate
Worksheets(1).Activate
Sheets(5).Activate
dataSheet.Activate
Tư vấn của Thanh: trừ khi bạn biết chính xác bạn đang làm gì, thì bạn mới nên sử dụng phương thức này của đối tượng Worksheet, bởi vì phương thức này có thể dẫn đến rất nhiều lỗi trong code VBA của bạn.
Calculate
của đối tượng Worksheet trong VBA khi được kích hoạt sẽ giúp tính toán lại các công thức trên Sheet này.
Worksheets("Data").Calculate
Copy
của đối tượng Worksheet trong VBA giúp chúng ta sao chép một Worksheet. Việc sao chép này có thể được thực hiện trong một Workbook, hoặc sang một Workbook khác.
Worksheets("_worksheet_cần_copy").Copy Before:=_Worksheet_A_
Worksheets("_worksheet_cần_copy").Copy After:=_Worksheet_A_
Một số ví dụ:
Sao chép Sheet “Data” ra phía trước của Sheet có tên là “Analysis” trong cùng Workbook:
Worksheets("Data").Copy Before:=Worksheets("Analysis")
' hoặc
Sheets("Data").Copy Before:=Sheets("Analysis")
Sao chép Sheet “Data” trong Workbook “Thanh.xlsm” ra phía sau Sheet “Big” trong Workbook “Master.xlsm”:
Workbooks("Thanh.xlsm").Worksheets("Data").Copy After:=Workbooks("Master.xlsm").Worksheets("Big")
Sheets("Big").Delete
Sau khi thực hiện code, bạn sẽ nhận được thông báo của Excel, bấm Delete nếu bạn muốn tiếp tục xóa.
Application.DisplayAlerts = False
Sheets(Array("Big", "Analysis")).Delete
Application.DisplayAlerts = True
chi tiết về các sử dụng Application.DisplayAlerts
hãy tham khảo bài viết Đối tượng Application trong Excel VBA
Move
của đối tượng Worksheet trong VBA giúp chúng ta di chuyển một Worksheet.
Để di chuyển Sheet “Big” ra phía trước Sheet “Data” và Sheet “Analysis” ra phía sau Sheet “Data”, ta có thể dùng code sau đây:
Sheets("Big").Move Before:=Sheets("Data")
Sheets("Analysis").Move After:=Sheets("Data")
Để di chuyển cùng lúc đồng thời 2 sheets “Big”, “Data” ra phía trước Sheet “Analysis”, chúng ta có thể dùng code sau đây:
Sheets(Array("Big","Data")).Move Before:=Sheets("Analysis")
Debug.print Worksheets(1).Name
Ngoài ra, chúng ta có thể đổi tên Worksheet ở vị trí thứ nhất trên SheetBar như sau:
Worksheets(1).Name = "Very Big Data"
Worksheets("Data").Visible = xlSheetVisible
Để ẩn Worksheet “Data”, nhưng có thể cho hiện lại ở trên SheetBar:
Worksheets("Data").Visible = xlSheetHidden
Để ẩn Worksheet “Data”, nhưng không cho phép hiện lại bằng thao tác trên SheetBar:
Worksheets("Data").Visible = xlSheetVeryHidden
Như vậy, qua bài viết này, Thanh đã giới thiệu với các bạn một số phương thức và thuộc tính của đối tượng Worksheet trong Excel VBA. Đối tượng Worksheet trong Excel VBA còn rất nhiều phương thức, thuộc tính và thành phần nữa, để kết hợp nhuần nhuyễn và hiểu rõ cách kết hợp tốt nhất những thành phần này cho ứng dụng VBA của bạn, hãy tham khảo khóa học VBA của Thanh:
Khóa học VBA cơ bản:
Tự động hóa Excel với lập trình VBA cho người mới bắt đầu
Toàn bộ các khóa học lập trình VBA:
Tham khảo toàn bộ các khóa học lập trình VBA
Đăng ký học qua Email Listen@hocexcel.online
Hộ kinh doanh Học Excel Online.
Số ĐK: 17A80048102
© Học Excel Online. All rights reserved.