Добрый день!
Помогите пожалуйста выполнить данный код на всех листах, т.е. что бы я выделил все листы и он выполнился на всех. Думаю что за макрос объяснять не нужно
Помогите пожалуйста выполнить данный код на всех листах, т.е. что бы я выделил все листы и он выполнился на всех. Думаю что за макрос объяснять не нужно
Код |
---|
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 |