VBA Xóa nội dung | Làm thế nào để xóa hoặc xóa nội dung bằng mã VBA?
Excel VBA Xóa nội dung
Xóa nội dung là một phương thức trong VBA được sử dụng để xóa hoặc loại bỏ các giá trị được lưu trữ trong các ô được cung cấp cho nó, phương thức này làm cho phạm vi ô trống và nó được sử dụng với thuộc tính phạm vi để truy cập phạm vi ô được chỉ định, ví dụ để sử dụng phương pháp này là phạm vi như sau (“A1: B2”). ClearContents phương pháp này sẽ xóa nội dung của các ô từ A1 đến B2.
Trong excel, thêm dữ liệu và xóa dữ liệu là một công việc thường xuyên. Đôi khi chúng tôi xóa giá trị một ô, đôi khi nhiều giá trị ô và đôi khi chúng tôi có thể yêu cầu xóa toàn bộ nội dung trang tính. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng phương pháp “Xóa nội dung” trong Excel VBA. Trong VBA, chúng tôi có nhiều phương pháp để thực hiện việc này như “Xóa”, “Xóa” và “Xóa nội dung”.
Xóa nội dung trong Excel VBA là gì?
Trước khi tôi nói với bạn về Xóa nội dung trong VBA, hãy để tôi chỉ cách chúng tôi có thể xóa hoặc xóa dữ liệu trong phạm vi cụ thể.
Ví dụ, hãy nhìn vào dữ liệu dưới đây.
Bây giờ nếu tôi muốn xóa từ ô A1 đến C3, trước tiên chúng ta cần đề cập đến phạm vi ô sử dụng đối tượng VBA RANGE.
Mã:
Phạm vi (“A1: C3”)
Sau khi đề cập đến phạm vi ô bằng cách sử dụng đối tượng RANGE, chúng ta cần chọn phương thức “Xóa” để xóa đề cập đến các giá trị ô.
Mã:
Phạm vi (“A1: C3”). Rõ ràng
Thao tác này sẽ xóa các giá trị ô được đề cập.
Mã:
Phạm vi Sub Clear_Example () ("A1: C3"). Xóa End Sub
Ngoài phương thức rõ ràng, chúng ta cũng có thể sử dụng phương pháp "XÓA".
Mã:
Phạm vi (“A1: C3”). Xóa
Thao tác này sẽ xóa các giá trị ô được đề cập giống như phương pháp clear của chúng tôi đã thực hiện.
Nếu bạn muốn xóa tất cả dữ liệu của ô thì bạn có thể sử dụng thuộc tính VBA CELLS với tên trang tính.
Trang tính (“Trang 1”). Ô. Xóa
Worksheets (“Sheet1”). Cells.Clear
Cả hai mã trên sẽ xóa toàn bộ dữ liệu của trang tính “Sheet1”. Nó sẽ xóa các giá trị ô ngay từ ô đầu tiên đến ô cuối cùng của trang tính.
Nếu bạn muốn xóa các ô trang tính hiện tại thì bạn có thể sử dụng đối tượng Trang tính Hoạt động.
ActiveSheet.Cells.Delete hoặc ActiveSheet.Cells.Clear
Sự khác biệt giữa các phương pháp xóa và xóa
Tôi biết câu hỏi này nên đã xuất hiện trong đầu bạn.
Có, có sự khác biệt giữa hai phương pháp này.
Khi bạn sử dụng phương pháp “Xóa”, nó sẽ xóa ô và ô bên dưới sẽ tiếp nhận vị trí của ô đã xóa.
Để có một ví dụ, hãy nhìn vào hình ảnh bên dưới.
Bây giờ tôi sẽ sử dụng phương pháp xóa để xóa ô A1.
Mã:
Sub Clear_Example () Range ("A1"). Xóa End Sub
Tôi sẽ chạy mã này và xem điều gì sẽ xảy ra.
Hãy xem điều gì đã xảy ra ở đây như tôi đã nói khi tôi xóa ô A1, nó sẽ bị xóa nhưng ô A2 di chuyển một ô lên và chiếm ô đã xóa. Điều này sẽ dẫn đến dữ liệu không khớp. Vì vậy, hãy cẩn thận trong khi sử dụng phương pháp Xóa.
Bây giờ đối với cùng một dữ liệu, tôi sẽ xóa phương pháp.
Mã:
Dãy Sub Clear_Example () ("A1"). Xóa End Sub
Bây giờ hãy xem điều gì sẽ xảy ra khi tôi chạy mã này.
Mã này vừa bỏ trống ô A1 mà không làm thay đổi các ô khác. Đây có vẻ là phương pháp thích hợp để chỉ xóa một phần ô của toàn bộ phạm vi dữ liệu.
Sử dụng phương pháp VBA Clear Contents để giữ lại định dạng của ô
Nếu bạn đã quan sát hai phương pháp trước, hai phương pháp đó không chỉ xóa hoặc xóa các ô được cung cấp. Nó cũng xóa định dạng của các ô mà chúng tôi đã cung cấp.
Để giữ lại định dạng của các ô, chúng ta không cần sử dụng cả “Delete” hay “Clear” nhưng chúng ta cần sử dụng phương pháp VBA “Clear Contents”.
Thời điểm bạn nhập phạm vi ô bằng cách sử dụng đối tượng RANGE, nó sẽ hiển thị tất cả các thuộc tính và phương thức được liên kết với nó.
Chúng ta có thể truy cập “Delete”, chúng ta có thể truy cập “Clear” và chúng ta cũng có thể sử dụng các phương thức “ClearContents”.
Chọn phương pháp này.
Mã:
Phạm vi Sub Clear_Example () ("A1: C3"). ClearContents End Sub
Bây giờ, thao tác này sẽ xóa nội dung từ ô A1 đến ô C3 nhưng chúng ta sẽ có tất cả các định dạng hiện có như nó vốn có.
Như bạn có thể thấy trong hình trên, chúng ta có màu ô trong VBA, đường viền và mọi định dạng được liên kết với các ô được đề cập đó.
Tương tự, chúng ta cũng có thể xóa nội dung của các trang tính khác.
Worksheets (“Sheet1”). Phạm vi (“A1: D10”). ClearContents
Thao tác này sẽ xóa nội dung từ các ô A1 đến D10 trong trang tính “Sheet1”.
Tương tự, chúng ta cũng có thể xóa các ô sổ làm việc đang mở khác.
Workbooks (“Book1.xlsx”). Worksheets (“Sheet1”). Phạm vi (“A1: D10”). ClearContents
Lặp qua tất cả các bảng tính và rõ ràng nội dung của phạm vi cụ thể
Giả sử bạn có nhiều trang tính trong sổ làm việc của mình và bạn muốn xóa phạm vi ô từ A1 đến C15 trong tất cả các trang tính, chúng tôi cần sử dụng For Each Loop trong VBA để thực hiện việc này.
Đoạn mã dưới đây sẽ thực hiện công việc.
Mã:
Sub Clear_All () Dim Ws as Worksheet cho mỗi W trong ActiveWorkbook.Worksheets Ws.Range ("A1: C15"). ClearContents Tiếp theo Ws End SubLưu ý: Bạn có thể thay đổi phạm vi ô theo ý muốn của mình.
Chỉ trong trường hợp nếu bạn muốn xóa toàn bộ dữ liệu trang tính thì bạn cần sử dụng mã dưới đây.
Mã:
Sub Clear_All () Dim Ws As Worksheet cho mỗi W trong ActiveWorkbook.Worksheets Ws.Cells.ClearContents Next Ws End Sub
Bạn có thể tải xuống mẫu VBA Clear Contents Excel này tại đây - VBA Clear Contents Template