Умный способ сохранить таблицу данных на открытой книге с помощью RDCOMClient - PullRequest
0 голосов
/ 16 марта 2019

У меня есть рабочая книга с двумя рабочими листами, скажем, просто 1 и 2. На рабочем листе 1 есть кнопка, которая при нажатии запускает подпрограмму VBA для вызова сценария R. Используя пакет RDCOMClient, скрипт R подключается к (все еще открытой) рабочей книге, считывает некоторые таблицы данных с листа 1, вычисляет некоторые данные и затем выводит таблицу данных t. То, что я хочу сделать, это вывести t на лист 2.

Что я сейчас делаю:

for (i in seq(t[,.N])){
    for (j in seq(length(t))){
        ws$Cells(i,j)[["Value"]]<-t[[i,j]]; #ws is a reference to Sheet2
    }
}

Теперь проблема в том, что это безумно медленно. На написание таблицы 60x130 уходит 1-2 минуты. Кто-нибудь знает, как сделать это быстрее?

PS: Я хочу обновить книгу open , а не сохранить ее в другом файле. Вот почему я не пробовал что-то вроде openxl и т. Д.

...