Цикл каждой ячейки в диапазоне, замена значения и добавление комментария быстрее - PullRequest
0 голосов
/ 02 марта 2020

У меня есть код, который перебирает диапазон, ищет значение и, если есть совпадение, изменяет значение ячейки и добавляет комментарий. Я делаю это для 4 различных значений, поэтому для запуска кода требуется некоторое время. Есть ли способ сделать это быстрее?

Я пытался поместить строку в массив, но я не уверен, как ее можно применить к моему коду: Какой самый эффективный / быстрый способ l oop через строки в VBA (Excel)?

Sub Replace()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

   For Each Cell In Range("F9:F" & Rows.Count)

   If (Cell.Value = "Aide-général (REMPLAÇANT)") Then
    Cell.Value = "Aide-général"
    Cell.AddComment "REMPLAÇANT"
    End If

    Next Cell

    For Each Cell In Range("F9:F" & Rows.Count)

   If (Cell.Value = "Cariste") Then
    Cell.Value = "Cariste (8300 / 3700)"
    Cell.AddComment "Cariste"
    End If

    Next Cell

    For Each Cell In Range("F9:F" & Rows.Count)

   If (Cell.Value = "Cariste (3700)") Then
    Cell.Value = "Cariste (8300 / 3700)"
    Cell.AddComment "Cariste (3700)"
    End If

    Next Cell

    For Each Cell In Range("F9:F" & Rows.Count)

    If (Cell.Value = "OP Break&Lunch Torréfaction (3700)") Then
    Cell.Value = "Torréfaction (3700)"
    Cell.AddComment "Break&Lunch"
    End If

    Next Cell

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

1 Ответ

2 голосов
/ 03 марта 2020

Я заменил функции if регистром выбора, и у меня есть только одна для l oop, поэтому код циклически проходит по ячейкам только один раз

Sub Replace()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

    For Each Cell In Range("F9:F" & Rows.Count)
        Select Case Cell.Value
            Case Is = "Aide-général (REMPLAÇANT)"
                Cell.Value = "Aide-général"
                Cell.AddComment "REMPLAÇANT"
            Case Is = "Cariste"
                Cell.Value = "Cariste (8300 / 3700)"
                Cell.AddComment "Cariste"
            Case Is = "Cariste (3700)"
                Cell.Value = "Cariste (8300 / 3700)"
                Cell.AddComment "Cariste (3700)"
            Case Is = "OP Break&Lunch Torréfaction (3700)"
                Cell.Value = "Torréfaction (3700)"
                Cell.AddComment "Break&Lunch"
            Case Else

            End Select

    Next

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...