Пакет xlconnect R отключает вычисления в шаблоне Excel

Я пытаюсь записать необработанные данные из R в шаблон Excel, а затем запустить небольшой макрос VBA, чтобы превратить необработанные данные во что-то красивое и презентабельное. Я использую XLConnect. Проблема в том, что XLConnect отключает вычисления на листе Excel.

Вот мой код R для записи моего фрейма данных в Excel:

VaR.dataframe = structure(list(names = c("VaR.montecarlo", "TVaR.montecarlo", "VaR.historic.1yr", "VaR.historic.2yr", "VaR.historic.3yr", "VaR.gaussian"), X95. = c(0.0363375421892311, 0.0507403479325009, 0.0402675195649073, 0.0400483852784169, 0.0357565527744698, 0.038409381028186), X97.5. = c(0.0473956950987274, 0.0598796459552848, 0.0528350062512669, 0.0483427549702983, 0.0432047576422228, 0.0488252950503447), X99. = c(0.0589594848085542, 0.0714812674589506, 0.06597791329211, 0.0596859927016254, 0.0544507369487263, 0.0609360460943547)), .Names = c("names", "X95.", "X97.5.", "X99."), class = "data.frame", row.names = c(NA, -6L))    
template_filename = "C:\\Temp\\my_template.xlsm"
writeWorksheetToFile(file = template_filename, data = VaR.dataframe, sheet = "VaR")

Это входит в необработанный лист под названием VaR, который я бы не показывал клиентам. То, что я показывал клиентам, выглядит примерно так:

введите здесь описание изображения

Все числа в таблице представляют собой формулы ВПР в необработанном листе VaR. Последним шагом является запуск небольшого макроса VBA, который будет копировать-вставлять-специальные-значения по формулам и удалять ужасно выглядящие оранжевые строки и столбцы.

Проблема заключается в том, после того как сценарий R обновил мой шаблон Excel, формулы не работают. Даже если я открою книгу и нажму F9 для расчета, все они будут #N/A. Это останется верным, пока я не выполню принудительный расчет, перейдя Ctrl-Alt-F9.

Моим первым побуждением было принудительно использовать комбинацию клавиш Ctrl-Alt-F9 в моем макросе VBA:

Call Application.SendKeys("^%{F9}")

Но и это, похоже, не работает.

Кто-нибудь знает, как заставить вычисление в макросе? Или предложить пакет R для написания Excel, который не повредит мою электронную таблицу?


person lebelinoz    schedule 10.04.2017    source источник


Ответы (1)


Для Ctrl/Alt/F9 попробуйте Application.CalculateFull

person Charles Williams    schedule 11.04.2017