Код выполняется значительно быстрее при выполнении из модуля вместо ленты - PullRequest
0 голосов
/ 01 марта 2019

У меня есть код, который находит все ячейки с определенной формулой.Код добавляет комментарий с формулой в качестве текста комментария.Ячейка равна значению.Когда я выполняю код в модуле напрямую, это занимает около 1 секунды.Если я выполню макрос с ленты разработчика, это займет 15 секунд.Кто-нибудь видел это раньше?Я включил код ниже, но я не уверен, является ли это проблемой или нет.

'Turn off automatic calculations & screen updating significnatly improves performance
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim ws As Worksheet
Dim datacell As Range
Dim wb As Workbook
Set wb = ActiveWorkbook

Dim sheetarray As Sheets
Set sheetarray = wb.Sheets(Array("Fun Discount", "Multiples", "EV Calc", "Beta", "Bandaid", "Company Reference", "Input"))

'First For Loop goes through all sheets in workbook
'Second For Loop identifies all cells with formulas, tests if cell formula contains "companyaddin"
'If it does contain "companyaddin", add comment with formula text as the comment text, save as values

For Each ws In sheetarray
    For Each datacell In ws.Cells.SpecialCells(xlCellTypeFormulas)
        If datacell.Formula Like "*""companyaddin*" Then
            datacell.AddComment datacell.Formula
            datacell.Value = datacell.Value
        End If
    Next datacell
Next ws

'clears object variables, restores automatic calculations & screenupdate
Set ws = Nothing
Set sheetarray = Nothing
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...