2015-02-16 4 views
0

Следующий UDF хорошо работает в Excel 2013, но в excel 2007 он перезапускается снова и снова, когда я запускаю макрос, чтобы отобразить все строки в листе:Снова и снова запускается следующий UDF в Excel 2007

Function VisibleBlankCells(R As Range) As Long 
    'On Error Resume Next 
    'VisibleBlankCells = Intersect(r.SpecialCells(xlCellTypeVisible), r.SpecialCells(xlCellTypeBlanks)).Count 
    'On Error GoTo 0 

    Dim count As Long 
    Dim c As Range 
    For Each c In R 
     If c.Value = "" And c.EntireRow.Hidden = False Then 
      count = count + 1 
     End If 
    Next c 

    VisibleBlankCells = count 
End Function 

Оценка последней строки - If c.Value = "" And c.EntireRow.Hidden = False Then, после чего отладчик возвращается к Function VisibleBlankCells(R As Range) As Long. Что может быть причиной этого? Как я могу это исправить?

+0

вы используете его в УВА или в первенствовать камеру? –

+0

Код используется в ячейке Excel – user1283776

+0

После того, как этот код запускается в ячейке Excel, вы запускаете макрос, который отображает строки (и триггеры пересчет каждый раз)? – GSerg

ответ

0

Добавить Application.calculation = xlCalculationManual в начале макроса и сбросить с помощью Application.Calculation = xlCalculationAutomatic в конце макрос

Смежные вопросы