Удалить повторяющиеся символы в строке в 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

Если у вас возникли какие-либо сомнения, попробуйте сначала на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .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. Затем пользователь должен вручную удалить лишние x, пока подогрев не исчезнет.

Связанный контент