![刪除Excel中行中的重複字符](https://rvso.com/image/1638107/%E5%88%AA%E9%99%A4Excel%E4%B8%AD%E8%A1%8C%E4%B8%AD%E7%9A%84%E9%87%8D%E8%A4%87%E5%AD%97%E7%AC%A6.png)
我試圖使每行只輸入一次“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
因為是工作表程式碼,所以很容易安裝並自動使用:
- 右鍵單擊 Excel 視窗底部附近的選項卡名稱
- 選擇查看代碼 - 這將打開一個 VBE 窗口
- 將內容貼進去並關閉 VBE 窗口
如果您有任何疑慮,請先在試用工作表上嘗試。
如果儲存工作簿,巨集將隨之儲存。如果您使用的是 2003 年以後的 Excel 版本,則必須將檔案另存為 .xlsm 而不是 .xlsx
到消除宏:
- 如上所示調出 VBE 窗口
- 清除程式碼
- 關閉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,則使用條件格式顯示警告。