У меня есть книга Excel, которая имеет 60 вкладок. Мне нужно удалить любое значение, которое существует во всех вкладках. Есть ли функция или каким-то образом я мог бы сделать это?

1 ответ1

0

Есть несколько вариантов; Один из вариантов - использовать формулу, чтобы увидеть, существует ли значение на всех листах, а затем вручную найти или заменить, чтобы удалить его, если оно есть. Я не фанат этого варианта.

Я бы рекомендовал использовать макрос с циклом For Each, чтобы пройтись по всем рабочим листам в файле и проверить, было ли найдено значение; если он найден во всех листах, очистите эти ячейки. Мы сделаем что-то вроде этого:

Sub ClearAll()
    Const csValue As String = "Test"    'This is the value we're looking for


    Dim rngFound() As Range 'This is a list of all the cells containing the value
    Dim i As Integer    'This is a counter for the list
    Dim shtSheet As Worksheet   'This is an individual sheet
    Dim bolAll As Boolean   'This is a flag to indicate whether the value is in all sheets


    ReDim rngFound(1 To ActiveWorkbook.Sheets.Count)    'Size the list to the number of sheets
    bolAll = True   'Assume we will find the value in all sheets
    For Each shtSheet In ActiveWorkbook.Sheets  'Loop through each sheet
        Set rngFound(shtSheet.Index) = shtSheet.Cells.Find(what:=csValue) 'Look for the value in this worksheet
        If rngFound(shtSheet.Index) Is Nothing Then 'Check whether a match was found
            bolAll = False  'If a match wasn't found, change the flag and exit the loop
            Exit For
        End If
    Next shtSheet

    If bolAll Then  'If the value was on all sheets
        For i = 1 To UBound(rngFound)   'Loop through each flagged cell...
            rngFound(i).ClearContents   '...and delete its contents
        Next i
    End If
End Sub

Чтобы использовать этот код, откройте редактор Visual Basic, нажав Alt+F11 на клавиатуре или перейдя на вкладку "Разработчик" на ленте и выбрав "Visual Basic". В левой панели редактора Visual Basic щелкните правой кнопкой мыши запись вашего рабочего листа и выберите "Вставить" -> "Модуль":

Скопируйте код выше и вставьте его в новое окно модуля. Теперь вы можете получить к нему доступ и запустить его через интерфейс макросов. Вы захотите заменить "Test" во второй строке этого кода на любое значение, которое вы ищете. У нас есть и другие способы изменить это значение, если вам нужно сделать это с несколькими значениями - дайте мне знать, что вам нужно.

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