Hướng dẫn cách xóa nội dung, định dạng trong ô, combo box trong excel với VBA

Nội dung được viết bởi Bến Hà Trương

Trong quá trình làm việc với Excel, đôi khi bạn cần xóa một vài nội dung nào đó. Trong bài viết này, chúng ta sẽ khám phá cách nhanh chóng xóa các nội dung, định dạng trong ô, combo box, phạm vi ô đã được đặt tên,...

Cách xóa nội dung xóa nội dung của combo box bằng mã VBA

Thông thường, bạn có thể xóa nội dung của combo box bằng cách xóa dữ liệu danh sách Phạm vi đầu vào. Nhưng làm thế nào để xóa nội dung của tất cả các combo box trong một trang tính Excel nhanh chóng?  Trong hướng dẫn này, chúng tôi sẽ giới thiệu 2 mã VBA giúp bạn không chỉ xóa nội dung của một combo box  mà còn xóa nội dung của tất cả các combo box cùng một lúc trong một trang tính Excel.

Hai mã VBA dưới đây có thể giúp bạn xóa nội dung của một combo box hoặc tất cả các hộp tổ hợp trong trang tính đang hoạt động. Hãy làm như sau.

1. Trong trang tính, bạn cần xóa nội dung của hộp tổ hợp, vui lòng nhấn các phím Alt + F11 cùng lúc để mở cửa sổ Microsoft Visual Basic for Applications.

nhấn các phím Alt + F11 cùng lúc để mở cửa sổ Microsoft Visual Basic for Applications.

2. Trong cửa sổ Microsoft Visual Basic for Applications , nhấp vào Insert > Module . Sau đó sao chép mã VBA bên dưới vào cửa sổ Code.

VBA 1: Xóa nội dung của combo box trong trang tính


Sub ClearAComboBox()
ActiveSheet.Shapes.Range(Array("Combo box 2")).Select
With Selection
    .ListFillRange = ""
End With
End Sub

Lưu ý : Trong mã, “Combo box 2” là tên của combo box mà bạn sẽ xóa nội dung. Vui lòng thay đổi nó thành tên combo box của bạn.

VBA 2: Xóa nội dung của tất cả các combo box trong trang tính đang hoạt động


Sub ClearComboBox()
    Dim xOle As OLEObject
    Dim xDrop As DropDown
    Application.ScreenUpdating = False
    For Each xOle In ActiveSheet.OLEObjects
        If TypeName(xOle.Object) = "ComboBox" Then
            xOle.ListFillRange = ""
        End If
    Next
    For Each xDrop In ActiveSheet.DropDowns
        xDrop.ListFillRange = ""
    Next
    Application.ScreenUpdating = True
End Sub

3. Nhấn phím F5 hoặc nhấp vào nút Run để chạy mã.

Sau đó, bạn có thể thấy nội dung được xóa trong combo box được chỉ định hoặc tất cả các combo box có trong trang tính.

Cách xóa nội dung xóa nội dung của combo box bằng mã VBA

Lưu ý : mã VBA có thể được áp dụng cho cả  Combo Box (Form Control) và Combo Box (ActiveX Control).

Xem thêm: Học lập trình VBA trong Excel

Cách xóa nội dung và định dạng cùng một lúc cho các ô trong Excel

Thông thường, bạn có thể nhấn phím Delete trên bàn phím có thể xóa nội dung của các ô đã chọn. Nhưng làm thế nào để xóa định dạng ô đồng thời với xóa nội dung? 
Mã VBA dưới đây có thể giúp bạn xóa nội dung ô và định dạng cùng một lúc, vui lòng thực hiện như sau.
1. Trong trang tính, bạn muốn xóa nội dung và định dạng khỏi các ô, vui lòng nhấn các phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications .
2. Trong cửa sổ Microsoft Visual Basic for Applications , nhấp vào Insert > Module. Sau đó sao chép và dán mã VBA vào cửa sổ Mã.

Mã VBA: Xóa nội dung và định dạng cùng một lúc trong các ô

Sub sbClearCellsOnlyData()
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Application.InputBox("Chon o can xoa", "Gitiho tools", Selection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    xRg.Clear
    Application.ScreenUpdating = True
End Sub

3. Trong hộp thoại Gitiho tools bật lên, vui lòng chọn các ô bạn sẽ xóa nội dung và định dạng cùng một lúc, sau đó nhấp vào nút OK.
Cách xóa nội dung và định dạng cùng một lúc cho các ô trong Excel
Bạn có thể thấy nội dung và định dạng của các ô đã chọn được xóa ngay lập tức.

Cách xóa nội dung của những phạm vi đã được đặt tên trong Excel

Vui lòng thực hiện các thoa tác sau để xóa nội dung của một phạm vi được đặt tên được chỉ định hoặc tất cả phạm vi được đặt tên trong trang tính hiện tại.

1. Trong trang tính có chứa phạm vi được đặt tên mà bạn sẽ xóa nội dung khỏi đó, hãy nhấn các phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications .
2. Trong cửa sổ Microsoft Visual Basic for Applications , nhấp vào Insert > Module. Sau đó sao chép mã VBA bên dưới vào cửa sổ Mã.
Để xóa nội dung của phạm vi được đặt tên được chỉ định trong trang tính, vui lòng áp dụng mã VBA bên dưới.
Mã VBA 1: Xóa nội dung của một phạm vi được đặt tên được chỉ định trong Excel

Sub Clear_ActiveSheet_Name_Ranges()
    Dim xName As Name
    Dim xInput As String
    Dim xRg As Range
    On Error Resume Next
    xInput = Application.InputBox("Nhap ten pham vi ban muon xoa:", "Gitiho tools", , , , , , 2)
    If xInput = "False" Then Exit Sub
    Application.ScreenUpdating = False
    Set xName = ActiveWorkbook.Names(xInput)
    If Not xName Is Nothing Then
         xName.RefersToRange.Clear
    End If
    Application.ScreenUpdating = True
End Sub

3. Nhấn phím F5 để chạy mã.
4. Sau đó, một hộp thoại Gitiho tools bật lên. Vui lòng nhập tên của phạm vi đã đặt tên mà bạn sẽ xóa nội dung, sau đó nhấp vào nút OK . 
Xóa nội dung của một phạm vi được đặt tên được chỉ định trong Excel
Sau đó, nội dung của tất cả các phạm vi được đặt tên sẽ bị xóa khỏi trang tính đang hoạt động.

Cách xóa các giá trị bị hàn chế khỏi các ô trong Excel

Bạn đã bao giờ gặp một hộp nhắc nhở như ảnh chụp màn hình bên trái được hiển thị khi cố gắng nhập nội dung vào một ô chưa? Đó là bởi vì ô đã bị hạn chế nhập giá trị nhất định. 
Cách xóa các giá trị bị hàn chế khỏi các ô trong Excel

Để xóa các giá trị bị hạn chế khỏi các ô trong excel, vui lòng làm như sau.

1. Chọn ô bạn muốn xóa giá trị bị hạn chế, sau đó nhấp vào Data > Data Validation. 
Hướng dẫn cách xóa nội dung, định dạng trong ô, combo box trong excel với VBA Data Validation. " title="Chọn ô bạn muốn xóa giá trị bị hạn chế, sau đó nhấp vào Data > Data Validation. ">

2. Trong hộp thoại Data Validation đang mở, nhấp vào nút Clear All trong tab Settings, sau đó nhấp vào nút OK . Xem ảnh chụp màn hình:
nhấp vào nút Clear All trong tab Settings

Bây giờ bạn đã xóa giá trị bị hạn chế của ô đã chọn.

Cách xóa nội dung một ô khi giá trị ô khác thay đổi trong Excel

Giả sử bạn muốn xóa một phạm vi nội dung ô cho trước khi giá trị của một ô khác bị thay đổi, bạn có thể làm thế nào như sau.
1. Trong trang tính, bạn sẽ xóa nội dung ô dựa trên các thay đổi ô khác, nhấp chuột phải vào tab trang tính và chọn View Code xem từ trình đơn ngữ cảnh. Xem ảnh chụp màn hình:
Cách xóa nội dung một ô khi giá trị ô khác thay đổi trong Excel
2. Trong cửa sổ Microsoft Visual Basic for Applications đang mở, sao chép và dán mã VBA bên dưới vào cửa sổ Code.
Mã VBA: Xóa nội dung ô đã chỉ định nếu giá trị của ô khác thay đổi


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

Lưu ý : Trong mã, A2 là ô cần kiểm tra có thay đổi hay không và C1: C3 là phạm vi bạn sẽ xóa nội dung khỏi khi giá trị B2 thanh đổi.
3. Nhấn các phím Alt + Q để đóng cửa sổ Microsoft Visual Basic for Applications.
Sau đó, bạn có thể thấy nội dung trong phạm vi C1: C3 tự động bị xóa khi giá trị trong ô A2 thay đổi như hình minh họa bên dưới.
Hướng dẫn cách xóa nội dung, định dạng trong ô, combo box trong excel với VBA


Cách xóa một nội dung được chỉ định khi mở và đóng cửa sổ làm việc Excel

Trước tiên, bạn cần lưu sổ làm việc mà bạn cần xóa nội dung ô đã chỉ định khi mở hoặc thoát dưới dạng Sổ làm việc hỗ trợ Excel Macro.

1. Vui lòng nhấp vàoFile > Save As > Browse. Như ảnh chụp màn hình bên dưới
Cách xóa một nội dung được chỉ định khi mở và đóng cửa sổ làm việc Excel
2. Trong hộp thoại Save As , vui lòng chọn một thư mục để lưu sổ làm việc, nhập tên mới vào hộp Tên tệp khi bạn cần, chọn Excel Macro-Enabled Workbook từ danh sách thả xuống Sava as type , sau đó bấm các Save.
3. Trong hộp thoại Microsoft Excel bật lên, vui lòng nhấp vào nút OK như hình minh họa bên dưới.
Cách xóa một nội dung được chỉ định khi mở và đóng cửa sổ làm việc Excel

4. Mở Macro-Enabled Workbook bạn vừa lưu, nhấn tổ hợp phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications .
5. Trong cửa sổ Microsoft Visual Basic for Applications , bấm đúp vào ThisWorkbook trong ngăn bên trái, sau đó sao chép mã VBA bên dưới vào cửa sổ Code.
Mã VBA 1: Xóa nội dung ô được chỉ định trên sổ làm việc đang mở

Private Sub Workbook_Open()
'Updated by Extendoffice 20190712
    Application.EnableEvents = False
        Worksheets("test").Range("A1:A11").Value = ""
    Application.EnableEvents = True
End Sub

Mã VBA 2: Xóa nội dung ô được chỉ định khi thoát sổ làm việc

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Updated by Extendoffice 20190712
    Worksheets("test").Range("A1:A11").Value = ""
End Sub


Lưu ý : Trong các mã trên,  test và A1: A11 là tên trang tính và phạm vi ô mà bạn sẽ xóa nội dung khỏi đó.
6. Nhấn các phím Alt + Q để thoát khỏi cửa sổ Microsoft Visual Basic for Applications .
Từ bây giờ, khi mở hoặc đóng sổ làm việc, nội dung ô được chỉ định trong một trang tính nhất định sẽ tự động bị xóa.

Hy vọng qua bài viết này, bạn đã biết cách nhanh chóng xóa các nội dung, định dạng trong ô, combo box, phạm vi ô đã được đặt tên,... trong Excel. Bên cạnh đó, để không bỏ lỡ các mẹo và thủ thuật tin học văn phòng hữu ích khác, hãy tham gia Gitiho ngay hôm nay.

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông