1

Я пытаюсь организовать некоторые данные, которые были сброшены из проприетарной системы, в то, что я могу использовать. В столбце A я хочу указать номер группы по.

Он выводит эту длинную строку, разделяющую различные дубликаты. Всякий раз, когда он попадает на охватывающую строку, я хочу, чтобы он увеличивал счетчик и удалял охватывающую строку.

Предыдущие данные это (я вручную набрал A3, A4, A6, A7, A8, A10, A11):

До

Я хотел бы, чтобы данные после выглядели так:

После

Есть идеи как это сделать?

Окончательное решение стало возможным благодаря комментарию снизу:

Public Sub CleanMeImFilthy()

    Dim intCounter As Integer
    Dim i As Integer

    i = 1

    For intCounter = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
       If Trim(LCase(Left(Cells(intCounter, 1).Value, 14))) = "duplicate key:" Then
         Rows(intCounter).Delete
         i = i + 1
       Else
         Rows.Cells(intCounter, 1) = i
       End If
    Next

End Sub

1 ответ1

2

Попробуйте следующий фрагмент VBA:

Public Sub CleanMeImFilthy

  Dim intCounter as Integer

  For intCounter = ActiveSheet.UsedRange.Rows.Count to 1 Step -1
    If Trim(Lcase(Left(Cells(intCounter,1).Value,14))) = "duplicate key:" Then
      Rows(intCounter).Delete
    End If
  Next

End Sub 

Весь код делает:

  1. Начинается в нижней части столбца A - где «bottom» - последняя использованная строка.
  2. Проверяет, соответствует ли строчная версия первых 14 символов текста в текущей ячейке, которая была очищена от пробелов, «дублирующий ключ»:
  3. Предполагая, что все строки, которые нужно удалить, содержат это, он затем удаляет строку

Я начал с самого низа и стал более чистым из-за того, что не удалял строку, что означает, что строка под вами теперь вы.

Поскольку вы изначально разместили это в Stack Overflow, я уверен, что вы можете добавить это в Excel. Если не:

  1. Скопируйте код отсюда
  2. Нажмите ALT+F11, чтобы войти в VB Editor.
  3. Нажмите Вставить | Модуль в строке меню
  4. Нажмите Редактировать | Вставить (CTRL+V)
  5. Закройте редактор VB
  6. На листе, содержащем ваши грязные данные, нажмите ALT+F8, чтобы получить список доступных макросов.
  7. Выберите «CleanMeImFilthy» и выберите «Выполнить».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .