Как очистить содержимое ячейки, если в Range есть несколько данных? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть лист Excel, где я хочу очистить данные ячейки, если в пределах диапазона найдено несколько совпадений.

Пример изображения

enter image description here

Если найдены совпадения, например SUP или AL , очистите содержимое и закрасьте ячейку, соответствующую найденному совпадению (например, SUP - желтый, AL -Red).Я использовал код ниже, он не работает.

Dim l As Long, lRow As Long
With Sheets("Sheet1")
    lRow = .Range("A" & Rows.Count).End(xlUp).Row
    For l = 1 To lRow
    For Each c In Range("A:AE")
    If c.Value = "SUP" Then
    c.Value = ""
    End If
    Next l
End With

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Попробуйте:

Dim r As Range, c As Range
Dim sh As Worksheet

For Each sh In Thisworbook.Worksheets '// loop on all worksheet //
  With sh

    Set r = .Range("A1:AE7") '// adjust to your actual range //
    For Each c In r
      With c
        Select Case UCase(.Value2) '// non case sensitive search //
        Case "SUP": .ClearContents: .Interior.Color = RGB(255, 255, 0)
        Case "AL": .ClearContents: .Interior.Color = RGB(255, 0, 0)
        End Select
      End With
    Next

  End With
Next

Edit1: добавлен цикл по всем листам и поиск без учета регистра. Не проверено, но должно дать вам представление о том, как это сделать.

0 голосов
/ 24 мая 2019

Этот должен работать

Option Explicit

Sub test()

Dim c As Range, arr As Range

Set arr = Range("A7:AE7")

For Each c In arr
    If InStr(1, c, "SUP") Or InStr(1, c, "AL") Then
       c.Clear
    End If
Next

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