Object variable or With block variable not set". Погуглил, что это проблемы с переменной - не объявлена или объявлена неправильно. Еще раз поправил макрос. И да, поменял искомую функцию с "ВПР" на "ДВССЫЛ". И нашел инфу, как отсекать формулы меньше 30 знаков. В итоге пришел к такому варианту. Вроде работает.
| Код |
|---|
Sub ttARM3() Dim wbOld As Workbook Set wbOld = ActiveWorkbook Dim ActiveSht As Worksheet Dim Rng As Range For Each ActiveSht In wbOld.Sheets On Error Resume Next Set Rng = ActiveSht.UsedRange.SpecialCells(xlCellTypeFormulas) On Error GoTo 0 If Not Rng Is Nothing Then For Each Rng In Rng If InStr(Rng.Formula, "INDIRECT") > 0 And Len(Rng.Formula) > 30 Then Rng.Value = Rng.Value End If Next Rng End If Next ActiveSht End Sub |