Страницы: 1
RSS
Выполнить макрос на всех листах
 
Добрый день!

Помогите пожалуйста выполнить данный код на всех листах, т.е. что бы я выделил все листы и он выполнился на всех. Думаю что за макрос объяснять не нужно :)
Код
Sub IfErrorNull()
    Const sToReturnVal As String = "0"
    'если необходимо вместо нуля возвращать пусто
    'Const sToReturnVal As String = """"""
    Dim rr As Range, rc As Range
    Dim s As String, ss As String
    On Error Resume Next
    Set rr = Intersect(Selection, ActiveSheet.UsedRange)
    If rr Is Nothing Then
        MsgBox "Выделенный диапазон не содержит данных", vbInformation, "www.excel-vba.ru"
        Exit Sub
    End If
    
    For Each rc In rr
        If rc.HasFormula Then
            s = rc.Formula
            s = Mid(s, 2)
            ss = "=" & "IFERROR(" & s & "," & sToReturnVal & ")"
            If Left(s, 8) <> "IFERROR(" Then
                If rc.HasArray Then
                    rc.FormulaArray = ss
                Else
                    rc.Formula = ss
                End If
                If Err.Number Then
                    ss = rc.Address
                    rc.Select
                    Exit For
                End If
            End If
        End If
    Next rc
 
    If Err.Number Then
        MsgBox "Невозможно преобразовать формулу в ячейке: " & ss & vbNewLine & _
                Err.Description, vbInformation, "www.excel-vba.ru"
    Else
        MsgBox "Формулы обработаны", vbInformation, "www.excel-vba.ru"
    End If
End Sub
 
Цитата
Zimba написал: т.е. что бы я выделил все листы
Так Вам во ВСЕХ листах или в ВЫДЕЛЕННЫХ?
Для выделенных попробуйте так
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Sanja,Класс, спасибо!
Страницы: 1
Наверх