2014-10-15 4 views
-1

По-видимому, Application.CalculateFull не возвращает правильные результаты на листе со многими формулами, но когда я нажимаю F9, он отлично работает. У меня был аналогичный файл из Excel 2003, и команда Calculate отлично работала для такого рабочего листа со многими формулами, но не с Excel 2010.с использованием sendkeys с excel VBA

Я попытался использовать Sendkeys "%^+{F9}" для эмуляции F9 и, похоже, это работает, но я вижу, что эта команда doesn завершение до конца VBA и, таким образом, моя внутренняя кодовая логика подбирает неправильные значения, поскольку это не выполняется, как только вызывается.

Есть ли способ, которым я могу выполнить SendKeys перед моей необходимой обработкой кода?

(я в затруднительном положении и опробовал много possbilities, кажется, нет выхода. Разработчик Финансы команда говорит, что лист хорошо, как он работает с F9, так что я должен нужен заставить его работать с Macro.)

+0

Вы говорите: «способ, которым я могу выполнить SendKeys перед моей необходимой обработкой кода». что это за код? вы имеете в виду автоматический расчет листа? –

+0

Привет, Goos, да, я хочу использовать Sendkeys для F9, поскольку он правильно вычисляет рабочий лист, тогда как Application.calculatefull или Worksheet.usedRange.calculate не отражает правильные результаты для нескольких формул на листе. Задача с sendkeys является единственной выполненной в конце VBA, поэтому, если я использую это в коде для обновления, логика для получения значений из определенных ячеек будет выбирать неправильные значения ... COULd вы предлагаете альтернативное решение для этого. Я уже ударил его мозгами ... Помогите ... – chandanrs

+0

Думаю, я знаю, в чем проблема, позвольте мне ответить. –

ответ

1

Я думаю, вы имеете в виду, что код только нажимает клавишу F9 после вычисления листа.
Что вы можете сделать, чтобы предотвратить это, отключите автоматический расчет перед запуском кода.

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

Application.Calculation = xlCalculationManual 

Если у вас есть другие листы, которые должны быть рассчитаны автоматически, вы должны добавить это в нижней части кода:

Application.Calculation = xlCalculationAutomatic 
+0

Как я могу прикрепить файл с скриншотом, чтобы показать, что происходит. – chandanrs

+0

вы можете просто добавить изображение в редакторе вопросов –

+0

Это не позволяет мне говорить, что ему нужна репутация 10, чтобы это разрешить ... В любом случае Я могу написать вам скриншот и вы можете помочь ... – chandanrs

Смежные вопросы