Не удается найти / запустить RefreshAll в VBA - PullRequest
1 голос
/ 03 апреля 2020

Я просто пишу простой код VBA:

Private Sub Worksheet_Change(ByVal Target As Range)

Sheet1.RefreshAll

End Sub

Но когда я запускаю код,

enter image description here

это окно всплывает - ошибка компиляции: метод или элемент данных не найден, и он направляет меня к функции RefreshAll.

И даже когда я писал строку, после полной остановки, выпадающие списки фактически не показывал функцию RefreshAll ....

Мне интересно, есть ли надстройка, которую я должен установить? Пожалуйста, кто-нибудь может мне помочь? Большое спасибо!

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

RefreshAll - метод для Workbook объекта. Таким образом, вы не можете использовать с Worksheet объектом. Пожалуйста, смотрите https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.refreshall

0 голосов
/ 03 апреля 2020

Как сказал @ Adisak, RefreshAll - это метод Workbook объекта, а не Worksheet объекта.

Итак, вам необходимо выполнить одно из следующих действий:

1 : Refre sh все для всей книги.

ThisWorkbook.RefreshAll

2: L oop через объекты, которые вы хотите обновить sh в пределах листа и обновить sh их один за другим. (Как уже упоминалось здесь для сводных таблиц)

Sub RefreshPT()
    Dim wsh As Worksheet
    Dim pvt As PivotTable
    Set wsh = Sheet1
    For Each pvt In wsh.PivotTables
        pvt.RefreshTable
    Next pvt
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...