можно ли пересчитать только ячейку или диапазон в VBA

можно ли пересчитать только ячейку или диапазон в VBA? Что мне нравится использовать для листа, так это следующее, но как это сделать только для ячейки? Или диапазон?

'    ActiveSheet.EnableCalculation = False
'    ActiveSheet.EnableCalculation = True

person BuZz    schedule 01.12.2011    source источник


Ответы (3)


Существует метод вычисления, который вы можете вызывать для диапазонов:

Range("A1").Calculate

Попробуйте это, поместив =Now() в A1 и запустив Calculate и наблюдая за обновлением секунд :) Вы можете пересчитать все ячейки на листе, используя:

Sheets(1).Calculate

См. также: Microsoft MSDN, Пересчет Excel, 16 июля 2012 г.

person aevanko    schedule 01.12.2011
comment
Это пересчитывает всю книгу, а не указанный диапазон :-( - person Philipp Munin; 21.02.2017
comment
Вам необходимо установить ручной метод расчета. Если это происходит автоматически, Excel воспользуется возможностью рассчитать каждую открытую книгу (а не только активную книгу). - person Jay Killeen; 26.07.2018

Расчет: все открытые книги

Application.Calculate

Расчет: конкретный рабочий лист

Worksheets(1).Calculate

or

Worksheets("sheetname").Calculate

Вычислить: указанная строка

Worksheets(1).Rows(2).Calculate

or

Worksheets("sheetname").Range("A1").EntireRow.Calculate

Пересчитать в Excel

Выберите ячейки, которые вы хотите пересчитать, и нажмите:

Press F9
person Unicco    schedule 21.04.2019

Попробуй это:

Range("A1").Formula = Range("A1").Formula

or

Cells(1, 1).Formula = Cells(1, 1).Formula 

Меня устраивает.

person Pituś    schedule 26.01.2021