Вопрос:
Как обновить ВСЕ ячейку через VBA
Как получить Excel для обновления данных на листе из VBA?
Я использую все решения, которые появляются выше:
ActiveSheet.EnableCalculation = False ActiveSheet.EnableCalculation = True
или
Application.Calculate
или
Application.CalculateFull
но ни один из них не работает в excel 2010, когда я иду в ячейку и правой кнопкой мыши refresh работает. Как обновить его в VBA.
Эта опция: Sheets(«Name_of_sheet»).Range(«D424»).Refresh поднять exception 438.
вопросы:
- Как я могу сделать script поддержку excel 2003,2007,2010?
- Как я могу выбрать, используя VBA исходный файл для обновления?
EDIT:
-
Я хочу имитировать щелчок правой кнопкой мыши и выбор обновления в меню worksheet 3. что вся история.
-
Я работаю над файлом excel, который был создан 10 лет назад. Открыв его в excel 2010, я могу перейти в ячейку и щелкнуть правой кнопкой мыши по ней и выбрать обновление, а затем выбрать файл .txt для обновления, и он работает отлично. Теперь, когда я пытаюсь сделать это автоматически в VBA, весь код, указанный выше, не помогает.
Лучший ответ:
Вы можете попробовать использовать Application.Calculation
Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic Ответ №1
Для отдельной ячейки вы можете использовать:
Range(«D13»).Calculate
ИЛИ
Cells(13, «D»).Calculate Ответ №2
просто напоминание;
будьте осторожны при использовании
Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic
это устанавливает полное приложение excel для вычисления формулы автоматически или вручную. Если вы используете
Application.Calculation = xlCalculationManual
вы заметите, что ваши автоматические формулы больше не работают.
веселит
Ответ №3
Я, наконец, использовал мышиные события и нажатия клавиш:
Sheets(«worksheet34»).Select Range(«D15»).Select Application.WindowState = xlMaximized SetCursorPos 200, 600 ‘set mouse position at 200, 600 Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) ‘click left mouse Application.SendKeys («R»)