Vba khác nhau worksheet và sheets
Khi chúng ta thao tác với Worksheets chúng ta tìm thấy code như sau: Cùng thao tác đó ta lại có code như sau:
Vậy Worksheets và sheets khác nhau như thế nào? sheets không chỉ là
Worksheets Bạn cần đăng nhập để thấy hình ảnh Ngoài ra, nếu dùng Macro của Excel 4.0 chúng ta còn có ModuleSheet. Bạn cần đăng nhập để thấy hình ảnh Nếu chúng ta dùng macro của Excel 5.0 thời Windows 95 ta còn có DiaglogSheet Bạn cần đăng nhập để thấy hình ảnh Và sheet mà chúng ta thường làm việc là Worksheet: Bạn cần đăng nhập để thấy hình ảnh Như vậy Sheets là tập hợp tất cả các thể loại sheet mà tôi vừa nhắc tới ở trên. Bạn cần đăng nhập để thấy hình ảnh Và thông thước thì chúng ta làm việc với loại sheet là worksheet. Bạn cần đăng nhập để thấy hình ảnh Trích dịch từ: Bạn cần đăng nhập để thấy link Đối tượng Worksheet trong Excel VBA là đối tượng đại diện cho một Worksheet trong lập trình VBA. Các thao tác với Worksheet khi các bạn làm việc với Excel (thủ công, bằng tay) như di chuyển sheet, copy sheet, đổi tên sheet, xóa sheet, … đều có thể thực hiện tự động bằng code VBA. Đối tượng Worksheets trong Excel VBA là một tập hợp các Worksheet trong một Workbook
Các loại Sheet trong một tài liệu ExcelWorksheet chúng ta đề cập đến trong bài viết này, thực ra chỉ là một loại Sheets trong Workbook Excel. Đã bao giờ các bạn gặp các loại Sheets khác chưa? Các bạn có thể nhìn thấy ở trong hình trên, trong cửa sổ Project – VBAProject của VBE, trong Book1.xlsm, chúng ta có thấy Sheet1 là một Worksheet, đối tượng mà chúng ta vẫn quen thuộc. Số lượng Worksheets trong một Workbook được thể hiện qua câu lệnh:
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:
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 Như các bạn đã thấy ở hình trên, một số sheets có tên Macro ở đầu, những sheets này đã được tạo ra như thế nào? Những sheets này có thể được tạo ra khi bạn bấm phím tắt CTRL + F11, và loại sheet này còn không được thể hiện trong VBA Project. Những Sheets này, được gọi là Macro Sheet, chỉ tồn tại với lý do tương thích ngược với những file Excel cũ, những file Excel vẫn sử dụng Excel Macro 4.0 (Ngôn ngữ VBA ra đời ở Excel phiên bản 5). Như vậy, các bạn đã biết rằng, chúng ta có nhiều hơn một loại sheet trong một Workbook, tuy nhiên, trong bài này, chúng ta chỉ tập trung vào đối tượng Worksheet mà thôi. Cách tham chiếu tới một Worksheet trong Excel VBATrước khi đi làm việc được với một Worksheet, thì chúng ta cần tìm hiểu cách tham chiếu tới Worksheet đó. Như ở bài Hệ thống các đối tượng trong Excel VBA thì các bạn đã biết, để tham chiếu tới một Worksheet, chúng ta có nhiều cách, tham chiếu từ Application, hay từ Workbook thì còn tùy vào trường hợp của chúng ta sử dụng. Nếu các bạn làm việc với nhiều Workbooks cùng lúc, thì chúng ta cần tham chiếu tới Worksheet từ “tầng Workbook”. Ví dụ, chúng ta muốn tham chiếu tới worksheet có tên “Data” ở trong Workbook đang chạy code:
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:
Tham chiếu tới Worksheet theo tênĐể tham chiếu tới một Worksheet theo tên trong Excel VBA, chúng ta có thể viết câu lệnh như sau:
vì Worksheet cũng là Sheet, nên chúng ta có thể tham chiếu tới Sheet Data như sau:
Tham chiếu tới Worksheet theo thứ tự (index)Để tham chiếu tới một Worksheet theo thứ tự trên Sheetbar trong Excel VBA, chúng ta có thể viết câu lệnh như sau:
Lưu ý Trong hình sau, chúng ta muốn tham chiếu tới Worksheet có tên là Nếu chúng ta tham chiếu bằng Sheets thì code sẽ là:
Tham chiếu tới Worksheet theo code name trong VBAĐối với hai cách tham chiếu tới Worksheet ở hai phần trước, sẽ có hạn chế trong quá trình sử dụng đó là:
Điều này đưa chúng ta đến một cách thứ ba để có thể tham chiếu đến một Worksheet trong VBA: theo code name hay (name) trong cửa sổ Properties ở trong VBA Editor: Trong hình trên: trên SheetBar, Worksheet của chúng ta tên là Data, chúng ta sẽ tham chiếu tới Worksheet này như thế nào:
Một số phương thức của đối tượng Worksheet trong VBA ExcelPhương thức ActivatePhương thức Activate của đối tượng Worksheet trong VBA dùng để kích hoạt một Worksheet, phương thức này tương đương với hành động chúng ta dùng chuột click vào tên Sheet ở trên SheetBar. Kích hoạt Worksheet có tên Data, cú pháp một trong những cách sau:
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. Phương thức CalculatePhương thức
Phương thức CopyPhương thức
Một số ví dụ:
Sao chép Sheet “Data” trong Workbook “Thanh.xlsm” ra phía sau Sheet “Big” trong Workbook “Master.xlsm”:
Phương thức DeletePhương thức Delete của đối tượng Worksheet trong VBA được sử dụng để xóa một hay một mảng các Sheets. Lưu ý: Thao tác xóa Sheets sử dụng code VBA sẽ không thể hoàn tác (Undo) được, nếu bạn thực hành trên file Excel của bạn, hãy đảm bảo sao lưu lại các file Excel trước khi thực hiện code. Để xóa Sheets có tên “Big”, chúng ta có thể viết đoạn code như sau:
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. Để xóa đồng thời 2 sheets có tên là “Big” và “Analysis”, không hiện hộp thoại thông báo xóa Sheets, chúng ta có thể sử dụng đoạn code sau đây:
chi tiết về các sử dụng Phương thức MovePhương thức Để 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:
Để 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:
Thuộc tính NameThuộc tính Name của đối tượng Worksheet trong VBA giúp bạn có được tên trên SheetBar của một Worksheet. Ví dụ, lấy tên của Worksheet ở vị trí thứ nhất trên SheetBar:
Ngoài ra, chúng ta có thể đổi tên Worksheet ở vị trí thứ nhất trên SheetBar như sau:
Thuộc tính VisibleVideo liên quan tới phần này: Thuộc tính Visible của đối tượng Worksheet trong VBA giúp bạn thiết lập sự ẩn / hiện của một Worksheet. Để hiện Worksheet “Data”:
Để ẩn Worksheet “Data”, nhưng có thể cho hiện lại ở trên SheetBar:
Để ẩn Worksheet “Data”, nhưng không cho phép hiện lại bằng thao tác trên SheetBar:
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 |