2016-08-18 2 views
0

Я использую веб-плагин (Bloomberg) и имею определенный диапазон в макросе, который необходимо пересчитать. Однако важно, чтобы другой диапазон не пересчитывался (веб-плагин Bloomberg), потому что он так сильно замедляет работу ПК. Просто остановить общий расчет во время макроса недостаточно, его действительно нужно привязать к определенному диапазону или листу.Остановить определенный диапазон от обновления

Вот мой код до сих пор, что не работает:

ActiveSheet.Unprotect 
Range("M1:CV1556").Locked = False 
Range("A13:K1556").Locked = True 
ActiveSheet.Protect 

Эти решения могут быть возможным: Отключение всех веб-плагинов и тем самым предотвратить новые данные будучи загрузки, которая является причиной медленного кода. Однако я не знаю, как это сделать в VBA.

Любая помощь очень ценится.

+0

Заблокированные влияют только на ячейку при активации защиты, они не имеют никакого отношения к освежению. разблокированная ячейка будет модифицироваться, даже если лист защищен, в то время как заблокированная ячейка не будет. Формулы все еще выполняются. https://msdn.microsoft.com/en-us/library/office/ff836172.aspx – litelite

ответ

0

Ниже приведен пример, который показывает, какие AddIns доступны, а затем как их отключить. Вероятно, вы можете использовать это, чтобы отключить надстройку перед выполнением обновления на другом диапазоне.

Public Sub Addin_Test() 
    Dim myRow  As Long 
    Dim objCOMAddin As Object 

    'Finding Add-Ins, adding to ActiveSheet 
    lngRow = 1 
    With ActiveSheet 
     For Each objCOMAddin In Application.COMAddIns 
      .Cells(lngRow, "A").Value = objCOMAddin.Description 
      .Cells(lngRow, "B").Value = objCOMAddin.Connect 
      .Cells(lngRow, "C").Value = objCOMAddin.progID 
      lngRow = lngRow + 1 
     Next objCOMAddin 
    End With 

    'How to disable an Add in? 
    Application.COMAddIns("Addin ProgID Goes here").Connect = False 
End Sub 
Смежные вопросы