刪除Excel中行中的重複字符

刪除Excel中行中的重複字符

我試圖使每行只輸入一次“x”(不帶引號)成為可能。我寧願使用資料驗證,但如果不可能,我也可以使用 VBA。我已經嘗試使用 COUNTIF 進行一些操作,例如在資料驗證中,但我只能找出如何從列而不是行中刪除重複項。

關於我能做什麼有什麼想法嗎?

答案1

嘗試下列工作表事件巨集。(它用COUNTIF():

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wf As WorksheetFunction, v As Variant
    Dim rng As Range, x As String
    
    Set wf = Application.WorksheetFunction
    v = Target.Value
    Set rng = Target.EntireRow
    x = "x"
    
    If v <> x Then Exit Sub
    If wf.CountIf(rng, x) > 1 Then
        Application.EnableEvents = False
            MsgBox "Too many x"
            Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub

因為是工作表程式碼,所以很容易安裝並自動使用:

  1. 右鍵單擊 Excel 視窗底部附近的選項卡名稱
  2. 選擇查看代碼 - 這將打開一個 VBE 窗口
  3. 將內容貼進去並關閉 VBE 窗口

如果您有任何疑慮,請先在試用工作表上嘗試。

如果儲存工作簿,巨集將隨之儲存。如果您使用的是 2003 年以後的 Excel 版本,則必須將檔案另存為 .xlsm 而不是 .xlsx

消除宏:

  1. 如上所示調出 VBE 窗口
  2. 清除程式碼
  3. 關閉VBE視窗

要了解有關巨集的更多信息,請參閱:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有關事件巨集(工作表程式碼)的更多信息,請參閱:

http://www.mvps.org/dmcritchie/excel/event.htm

必須啟用巨集才能使其工作!

答案2

只是為了詳細說明加里的答案。僅通過資料驗證是無法做到這一點的,需要啟用巨集的 VBA 才能使其完全按照描述的方式運作。

如果您想避免使用 VBA,可以先將每個儲存格限制為「x」或「」下拉清單。現在,如果 counta 大於 1,則使用條件格式顯示警告。

相關內容