Range.Calculate не обновляет значения в диапазоне

Я пытаюсь использовать Excel VBA для пересчета определенного определенного диапазона без пересчета остальной части листа. У тебя есть решение?

Примечание:

  • Активный лист — это лист, содержащий определенный диапазон (например, Лист1 или «Акронимы»).
  • Определенный диапазон является частью таблицы (например, "Tbl__Acronym_List[Matching Strength]").
  • Для параметров расчета рабочей книги установлено значение «Вручную».
  • Я просмотрел ответы на несколько других подобных сообщений, но, похоже, у них не было решения. (например, angularjs — значение Input[type=range] не обновлено)

Вот код, который у меня сейчас есть, который не работает:

'-- Recalculate defined range "dr__show_match_strength".
     Range("dr__show_match_strength").Dirty
     Range("dr__show_match_strength").Calculate

person Graham_Edwards    schedule 23.01.2020    source источник
comment
Является ли dr__show_match_strength именованным диапазоном?   -  person Nathan_Sav    schedule 23.01.2020
comment
Да, это. Я разобрался в вопросе. Я думал, что пересчитываю dr__Matching_Strength_Lookup_Fields, но закодировал неправильное имя.   -  person Graham_Edwards    schedule 23.01.2020


Ответы (1)


Разобрался с проблемой. Простая ошибка с моей стороны.

Определенный диапазон, который я рассчитывал (т.е. «dr__show_match_strength»), не был определенным диапазоном, как я думал. Я действительно хотел рассчитать другой диапазон (например, «dr__Matching_Strength_Lookup_Fields»).

Код обновлен и проверен как рабочий:

        '-- Recalculate "Match Strength" information.
        Range("dr__Matching_Strength_Lookup_Fields").Dirty
        Range("dr__Matching_Strength_Lookup_Fields").Calculate
person Graham_Edwards    schedule 23.01.2020