VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Giới Thiệu Về Excel VBA

Excel VBA là gì? Tạo một Macro trong Excel MsgBox trong Excel VBA

Các Đối Tượng Trong Excel VBA

Hệ thống các đối tượng Đối tượng Application Đối tượng Workbook Đối tượng Worksheet Đối tượng Range

VBA Cơ Bản

Biến và kiểu dữ liệu trong VBA Comment trong VBA Toán tử trong VBA Function trong VBA Sub trong VBA Khối lệnh With-End With Mảng (Array) trong VBA Collection trong VBA Dictionary trong VBA Debug trong VBA Xử lý lỗi trong VBA Truyền tham chiếu và giá trị

Các Mệnh Đề Điều Khiển

Mệnh đề If-Else Vòng lặp For Vòng lặp For-Each Vòng lặp While-Wend Vòng lặp Do-While Vòng lặp Do-Util Mệnh đề Select-Case

VBA String

String trong VBA Hàm InStr trong VBA Hàm InStrRev trong VBA Hàm LCase trong VBA Hàm UCase trong VBA Hàm Left trong VBA Hàm Right trong VBA Hàm Mid trong VBA Hàm LTrim trong VBA Hàm RTrim trong VBA Hàm Trim trong VBA Hàm Len trong VBA Hàm Replace trong VBA Hàm Space trong VBA Hàm StrComp trong VBA Hàm String trong VBA Hàm StrReverse trong VBA

VBA Date

Date & Time trong VBA Hàm Date trong VBA Hàm CDate trong VBA Hàm DateAdd trong VBA Hàm DateDiff trong VBA Hàm PartDate trong VBA Hàm DateSerial trong VBA Hàm FormatDateTime trong VBA Hàm IsDate trong VBA Hàm Day trong VBA Hàm Month trong VBA Hàm Year trong VBA Hàm MonthName trong VBA Hàm WeekDay trong VBA Hàm WeekDayName trong VBA

VBA Time

Hàm Now trong VBA Hàm Hour trong VBA Hàm Minute trong VBA Hàm Second trong VBA Hàm Time trong VBA Hàm Timer trong VBA Hàm TimeSerial trong VBA Hàm TimeValue trong VBA
Các Ví Dụ Về Excel VBA
1 / 3
❮ ❯

Đối tượng Worksheet trong Excel VBA


Đối tượng Workbook trong Excel VBA
Đối tượng Range trong Excel VBA

Đối tượng Worksheet trong Excel VBA là một trong những đối tượng được sử dụng thường xuyên nhất trong khi tự động hoá các tác vụ với VBA.

Đối tượng Worksheet đại diện cho các sheet trong Workbook, tức là mỗi Workbook chứa một hoặc nhiều Worksheet.


Nội dung chính

  • Các phương thức của đối tượng Worksheet
    • Phương thức Activate
    • Phương thức Copy
    • Phương thức Delete

Các phương thức của đối tượng Worksheet

Dưới đây là các phương thức được sử dụng thường xuyên của đối tượng Worksheet trong VBA:

Phương thức Mô tả
Activate Để kích hoạt một Worksheet.
Calculate Để làm mới tất cả tính toán trong một Worksheet.
Copy Để copy một Worksheet.
Delete Để xóa một Worksheet.
Move Để di chuyển một Worksheet.
Select Để chọn một Worksheet.


Phương thức Activate

Phương thức Activate của đối tượng Worksheet trong VBA được sử dụng để kích hoạt một Worksheet cụ thể của một Workbook đang được kích hoạt.

Tại sao chúng ta cần phải kích hoạt một Worksheet bằng VBA?

Khi chúng ta phải xử lý nhiều Worksheet (sheet trong một Workbook) và bạn muốn đọc hoặc ghi vào một Worksheet (sheet) cụ thể thì bạn phải kích hoạt Worksheet đó.

Cú pháp:


Worksheets(“Worksheet Name”).Activate
' Or
Worksheets(“Worksheet Index”).Activate

Áp dụng cú pháp trên bạn sẽ kích hoạt được đối tượng Worksheet cụ thể của một Workbook đang được kích hoạt.

Ví dụ 1: Activate Worksheet trong VBA với tên của Worksheet

Sub ActiveWorksheetExample1()
    ' sử dụng tên của một Worksheet
    Worksheets("data").Activate
    'Or
    Sheets("data").Activate
End Sub
Ví dụ 2: Activate Worksheet trong VBA với chỉ số của Worksheet

Sub ActiveWorksheetExample1()
    ' sử dụng tên của một Worksheet
    Worksheets(2).Activate
    'Or
    Sheets(2).Activate
End Sub

Cách tiếp cận tốt nhất

Lưu ý: Luôn luôn sử dụng tên của Worksheet, thay vì chỉ số của Worksheet. Và cách tiếp cận tốt nhất là gán Worksheet cho một đối tượng và sau đó làm bất cứ nhiệm vụ nào bạn muốn làm với đối tượng Worksheet cụ thể đó.

Tạo biến tham chiếu đến Worksheet

Vấn đề: Khi bạn phải làm việc với nhiều Workshet (nhiều sheet), mỗi Workbook có nhiều Worksheet. Bạn phải sử dụng phương thức Activate với hết Workshet này đến Workshet khác để đọc hoặc ghi dữ liệu từ chúng, điều này có thể dẫn đến mã rối rắm, khó hiểu khiến bạn lúng túng.

Giải quyết vấn đề

Để giải quyết vấn đề trên, có một giải pháp cho bạn đó là với mỗi Worksheet bạn tạo ra một biến tham chiếu. Sau đó, bất cứ khi nào muốn sử dụng (Activate) Worksheet nào bạn chỉ cần tham chiếu đến biến tương ứng.

Ví dụ:


Sub vidu3() 
    ' khai báo đối tượng wb
    Dim wb As Workbook
    ' khai báo đối tượng ws
    Dim wsInput As Worksheet
    Dim wsOutput As Worksheet

    ' gán wb cho active Workbook
    Set wb = Application.ActiveWorkbook
    
    ' gán wsInput cho đối tượng Worksheet có tên "input"
    Set wsInput = wb.Sheets("input")
    ' gán wsOutput cho đối tượng Worksheet có tên "output"
    Set wsOutput = wb.Sheets("output")
End Sub

Xem ví dụ cụ thể tại ví dụ đối tượng Workbook và Worksheet


Phương thức Copy

Phương thức Copy của đối tượng Worksheet trong VBA được sử dụng để sao chép một Worksheet từ vị trí này sang ví trí khác trong cùng một Workbook hoặc Workbook đang tồn tại hoặc Workbook mới khác.

Cú pháp:


Sheets(“Worksheet Number”).Copy([Before], [After])
Ví dụ 1: Copy Worksheet trong VBA với Before

Ví dụ sau sao chép sheet "Sheet3" tới vị trí trước sheet đầu tiên trong cùng Workbook. Trường hợp '1' đại diện cho số chỉ mục Worksheet đầu tiên.


Sub CopySheet_Beginning1()
    Worksheets("Sheet3").Copy Before:=Worksheets(1)
End Sub

Ví dụ trên, chúng ta sao chép worksheet đang hoạt động đến vị trí đầu tiên trong cùng Workbook.


Sub CopySheet_Beginning2()
    ActiveSheet.Copy Before:=Worksheets(1)
End Sub
Ví dụ 2: Copy Worksheet trong VBA với After

Ví dụ sau sao chép sheet "Sheet3" tới vị trí trước sheet cuối cùng trong cùng Workbook. Trường hợp Worksheets.Count đại diện cho số chỉ mục Worksheet cuối cùng.


Sub CopySheet_Ending1()
    Worksheets("Sheet3").Copy After:=Worksheets(Worksheets.Count)
End Sub

Ví dụ trên, chúng ta sao chép worksheet đang hoạt động đến vị trí cuối cùng trong cùng Workbook.


Sub CopySheet_Ending2()
    ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
End Sub

Phương thức Delete

Phương thức Delete của đối tượng Worksheet trong VBA được sử dụng để xóa sheet khỏi Workbook (file Excel). Khi bạn gọi phương thức Delete để xóa một sheet, nó sẽ hiển thị hộp thoại nhắc người dùng xác nhận việc xóa theo mặc định. Nếu bạn click vào nút Delete trên hộp thoại thì nó sẽ xóa sheet. Nó trả về giá trị Boolean. Điều đó có nghĩa là hộp thoại sẽ xuất hiện với hai tùy chọn. Đó là Cancel (False) hoặc Delete (True).

Cú pháp:


Worksheets(“Sheet Name”).Delete
Ví dụ 1: Xóa Worksheet trong VBA

Ví dụ sau xóa sheet có tên "Sheet2" từ một Workbook.


Sub DeleteSheetExample1()
    Sheets("Sheet2").Delete
    ' or
    Sheet2.Delete
End Sub

Ví dụ trên, sẽ hiển thị hộp thoại Excel và thông báo xác nhận tới người dùng để xóa "Sheet2".

Ví dụ 2: Xóa Worksheet trong VBA

Sub DeleteSheetExample1()
    ActiveSheet.Delete
End Sub

Ví dụ trên, chúng ta thực hiện xóa đối tượng Worksheet đang hoạt động từ một Workbook bằng cách sử dụng phương thức Delete của đối tượng Worksheet.

Ví dụ 3: Xóa Worksheet trong VBA - không hiển thị alert

Sub DeleteSheetExample1()
    Application.DisplayAlerts = False
    Sheets("Sheet2").Delete
    Application.DisplayAlerts = True
End Sub

Ví dụ trên, xóa "Sheet2" nhưng KHÔNG hiển thị hộp thoại Excel thông báo xác nhận tới người dùng.


Tìm hiểu thêm: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-object-excel


Đối tượng Workbook trong Excel VBA
Đối tượng Range trong Excel VBA

Recent Updates

Phím tắt hay dùng trong ExcelBảo mật tập tin ExcelDịch trang tính trong ExcelIn trang tính trong ExcelHàm VLOOKUP trong ExcelĐối tượng đồ họa trong ExcelSử dụng macro trong ExcelSử dụng Templates trong ExcelSử dụng chủ đề (theme) trong ExcelSử dụng Style trong ExcelXác thực dữ liệu (Data Validation) trong ExcelSử dụng phạm vi (Range) trong ExcelSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học VBA Excel Online
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml