Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để xóa nội dung ô đã chỉ định nếu giá trị của một ô khác thay đổi trong Excel?

Giả sử bạn muốn xóa một phạm vi nội dung ô đã chỉ định nếu giá trị của một ô khác bị thay đổi, bạn có thể làm thế nào? Bài đăng này sẽ chỉ cho bạn một phương pháp để giải quyết vấn đề này.

Xóa nội dung ô đã chỉ định nếu giá trị của ô khác thay đổi bằng mã VBA


Xóa nội dung ô đã chỉ định nếu giá trị của ô khác thay đổi bằng mã VBA

Như ảnh chụp màn hình bên dưới được hiển thị, khi giá trị trong ô A2 được thay đổi, nội dung trong ô C1: C3 sẽ tự động bị xóa. Hãy làm 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 Mã Chế độ xem từ menu ngữ cảnh. Xem ảnh chụp màn hình:

2. Trong phần mở đầu Microsoft Visual Basic cho các ứng dụng , sao chép và dán mã VBA bên dưới vào cửa sổ Mã.

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

Chú thích: Trong mã, B2 là ô bạn sẽ xóa nội dung ô dựa trên và C1: C3 là phạm vi bạn sẽ xóa nội dung. Vui lòng thay đổi chúng khi bạn cần.

3. Nhấn nút Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

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.


Các bài liên quan:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (38)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã xóa một ô nếu một thay đổi khác hoạt động tốt !!!! Nhưng tôi cần nó hoạt động theo cách khác ..... Mã đó được viết như thế nào ??


Cảm ơn bạn đã giúp đỡ
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Scott thân mến,
Ý bạn là làm việc theo chiều ngược lại là gì? Khi xóa thủ công nội dung của các ô nhất định (C1: C3), sau đó xóa nội dung của ô A2 tự động?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, điều này chỉ hoạt động cho một ô nguồn cố định (A2), làm thế nào để điều này động, chẳng hạn như nguồn là một ô biến? tôi đã cố gắng viết
A = activecell.row
Nếu không Giao nhau (Mục tiêu, Phạm vi ("A" & A)) thì Không có gì
Phạm vi ("C1: C3"). ClearContents
Cuối Nếu

điều này sẽ thực hiện công việc liên quan đến hoạt động (tức là lựa chọn) nhưng không hoạt động
cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Vui lòng thử mã VBA bên dưới. Cảm ơn bình luận của bạn.

Private Sub Worksheet_Change (ByVal Target As Range)
Nếu (Không Giao nhau (Mục tiêu, Hàng (1)) Không có gì) Và (Mục tiêu.Count = 1) Thì
Phạm vi ("C1: C3"). ClearContents
Cuối Nếu
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đang tìm cách xóa một dải ô dữ liệu khi nhập "x" vào một ô nhất định. Tôi đã sử dụng công thức trên và nó hoạt động hoàn hảo cho một hàng đó. Vấn đề là tôi cần phải mở rộng nó xuống nhiều hàng. Ví dụ: nếu "x" được nhập trong "D13", tôi cần xóa phạm vi J: 13 - v: 13. Tôi cũng cần điều đó xảy ra nếu một x được nhập vào "D14" như trong tôi cần phạm vi d: 14 - v: 14 được xóa. Có cách nào để viết điều đó không? Cảm ơn bạn đã giúp đỡ!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, điều này không làm việc cho tôi. Không có gì thay đổi nhưng cũng không có lỗi. Bất kỳ lời khuyên?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Good day,
Xin lỗi vì sự bất tiện. Bạn có cung cấp phiên bản Office của mình không? Cám ơn bạn đã góp ý.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Trong trường hợp A2, làm cách nào để tham chiếu một ô từ một trang tính khác?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
bất kỳ cách nào để làm điều này mà không có VBA?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Sonia,
Không tìm thấy bất kỳ ngoại lệ giải pháp nào cho VBA. Cám ơn bạn đã góp ý.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi sử dụng mã VBA nào nếu tôi có một bảng và cần nhiều ô trống?

Bảng của tôi là B3: E7. Nếu nội dung trong cột B bị xóa thì tôi muốn dữ liệu trong cột C, D, E bị xóa cho hàng đó. Tôi có bên dưới cho hàng 3, nhưng muốn tương tự ở hàng 4,5,6 và 7.

Private Sub Worksheet_Change (ByVal Target As Range)
Nếu không Giao nhau (Mục tiêu, Phạm vi ("B3")) thì Không có gì
Phạm vi ("C3: E3"). ClearContents
Cuối Nếu
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì về một trong những chỉ để xóa nội dung của bất kỳ ô nào trên một cú nhấp đúp?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, làm cách nào để bạn lặp lại mã cho nhiều ô trong ví dụ, tức là nếu tôi xóa nội dung của các ô a4 & a5, tôi muốn xóa nội dung của b4: z4 & b5: z5 tương ứng, tôi cần thực hiện việc này đối với một bảng tính lớn với 1000 hàng, bất kỳ lời khuyên nào sẽ được đánh giá cao
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Julian, tôi cũng đang tìm kiếm điều tương tự, vui lòng cho tôi biết nếu bạn có bất kỳ giải pháp nào cho việc này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vui lòng thay đổi các số cho phù hợp
Dim i As Integer
Private Sub Worksheet_Change (ByVal Target As Range)
Đối với i = 2 đến 10
lookrange = "A" & i
contentrange = "B" & i & ":" & "C" & i
If Not Intersect (Target, Range (lookrange)) Không có gì thì
Phạm vi (phạm vi nội dung) .ClearContents
Cuối Nếu
Tiếp theo
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào sagarsrinivas0312, Cảm ơn bạn rất nhiều vì mã này. Tôi đã tìm kiếm một tuần cho giải pháp này!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này là tuyệt vời, cảm ơn. Làm cách nào để làm điều này nhiều lần ... để xóa các ô khác dựa trên một cột khác?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
riusciresti a scrivermelo trong modo che debba solo vé copia ed inclla?
non riesco veramente a farlo funzionare

grazym mille
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
đang cố gắng xóa các ô thừa của cột A và B nếu tìm thấy các ô trống trong cột C của trang tính có tên "Đã bán" và Macro chạy từ Trang tính có tên "Hóa đơn".

Tôi nhận được mã dưới đây từ một trang web trợ giúp nhưng không đạt được mong muốn của tôi.
xin vui lòng giúp tôi về nó. Ảnh chụp màn hình đính kèm những gì tôi muốn.

Sum Clear ()

Dim g As Long
Đối với g = 2 Tới ActiveSheet.UsedRange.Rows.Count
Nếu Ô (g, "C"). Giá trị = "" Thì
Ô (g, "A"). ClearContents
Ô (g, "B"). ClearContents

Cuối Nếu
Sau
Tổng kết thúc
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này dường như không hoạt động nếu nội dung ô đã chỉ định được kiểm soát bởi một ô trên trang tính khác? có cách sửa nào cho nó không?
Ví dụ sử dụng tên ô của bạn
Nếu ô "A2" là (= sheet1 [@ [a5]] và số này thay đổi trên trang tính 1 thì thay đổi nội dung của ô A2, nó sẽ không xóa nội dung trong phạm vi đã chỉ định.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Private Sub Worksheet_Activate ()
Nếu Phạm vi ("S2") <> Phạm vi ("A2"). Giá trị Thì
Range ("S2") = Range ("A2"). Giá trị
Phạm vi ("d2: g2"). ClearContents
Cuối Nếu
'S2' có thể được thay thế bằng bất kỳ ô nào nằm ngoài phạm vi dữ liệu. Những gì VBA đang làm là tự động cập nhật dữ liệu cho 'S2', sau đó dữ liệu đang được cập nhật là những gì kiểm soát phạm vi bạn đã chỉ định và liệu nó có bị xóa hay không.
Đây là cách duy nhất tôi đã tìm thấy để thực hiện thành công việc này khi sử dụng các ô được tham chiếu cả trong và ngoài trang tính.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không hoàn toàn những gì tôi cần nhưng đến đó. Tôi có một ô trống E3. Tôi có dữ liệu trong B3. Khi tôi nhập dữ liệu vào E3, nếu nó giống với B3 thì B3 sẽ bị xóa. Mong bạn giúp tôi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể xóa nội dung ô đã chỉ định nếu ô kích hoạt chứa một số cụ thể không? Giả sử, NẾU ô A1 = 1, sau đó xóa Ô A2: A4?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bonjour tout le monde,

Besoin d'aide, j'ai besoin d'effacer le contenu d'une cellule de la colonne "I" si la cellule (de la même ligne) de la colonne "O" = 0, môi trường 2000 lignes avec des titres tout le 10 lignes môi trường.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,

Chỉ đang tìm một cách dễ dàng để thực hiện nó, vì vậy nếu "B2" đã chọn "Có" từ danh sách xác thực dữ liệu, ô B3 sẽ xóa dữ liệu đó ... và ngược lại: Nếu "B3" đã chọn "Có" từ danh sách xác thực dữ liệu, ô "B2" sẽ xóa dữ liệu của nó.

Về cơ bản B2 or B3 có thể nói ""(từ danh sách xác thực dữ liệu) nhưng không bao giờ đồng thời, cái này nên xóa cái kia.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Jeff,
Mã VBA sau đây có thể giúp bạn. Hãy thử nó.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più carvedhe e colonne) trong base al valore di un'altra cella. es: se la cella A2, il quadrato con vertici opposto C12: F2 venga cancellato.
Grazie mille
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Pietro,
Xin lỗi, tôi không hiểu câu hỏi của bạn. Bạn có phiền tải lên ảnh chụp màn hình dữ liệu của mình không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đối với ứng dụng này, VBA không được hỗ trợ. Мне нужно при изменении ячейки удалить данные из другой và чтобы это дейстовало на весь стол.
G2 là G2, A3 là G3, A6 là G6 và т.д.

Private Sub Worksheet_Change (ByVal Target As Range)
Nếu không Giao nhau (Mục tiêu, Phạm vi ("A2")) thì Không có gì
Phạm vi ("G2"). ClearContents
Cuối Nếu
End Sub


Tại sao bạn lại có một cuộc sống như vậy, và bạn có thể làm gì với nó không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Наталья!
Mã VBA sau có thể giúp bạn giải quyết vấn đề. Hãy thử một lần.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào,

Zu Punkt 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg, Alt, Tab ... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht.

Lieben Gruß Mathias
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Mathias,
Nếu bạn không tìm thấy phím tương ứng trên bàn phím. Bạn có thể chỉ cần nhấp vào Lưu nút trong Cửa sổ Ứng dụng Microsoft Visual Basic để lưu mã và sau đó đóng cửa sổ này theo cách thủ công.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Mã bên dưới hoạt động như được quảng cáo nhưng xảy ra các sự cố sau:

Thứ nhất, khi thay đổi kích thước bảng được nhắm mục tiêu, tất cả dữ liệu bảng sẽ bị xóa VÀ, tất cả trừ các tiêu đề cột 1 được gắn nhãn lại thành "Column1, Column2, v.v. VÀ sổ làm việc tự động lưu lại nó và loại bỏ việc hoàn tác.

Thứ hai, khi xóa bất kỳ hàng nào trong bảng, tôi nhận được thông báo "Run-time error 1004 (Phương thức bù đắp phạm vi đối tượng không thành công.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


Bất kỳ ý tưởng về những gì có thể là sai?

Cảm ơn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, đây là trabajando một cơ sở dữ liệu trong VĂN PHÒNG TRỰC TUYẾN a traves de ONEDRIVE, quiero que al PONER "CANCELADO" o "NOSHOW" loại bỏ nội dung được chọn của bộ phim.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào thiên thần,
Mã VBA không hoạt động trong Office Online. Xin lỗi vì sự bất tiện.
Không có bình luận nào được đăng ở đây
Tải thêm

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL