Я проверил исходный код XLGetRange ()
......
if(is.null(file)){
xl <- GetCurrXL()
ws <- xl$ActiveSheet()
if(is.null(range)) {
# if there is a selection in XL then use it, if only one cell selected use currentregion
sel <- xl$Selection()
if(sel$Cells()$Count() == 1 ){
range <- xl$ActiveCell()$CurrentRegion()$Address(FALSE, FALSE)
}
.....
xl <- GetCurrXL () возвращает </p>
An object of class "COMIDispatch"
Slot "ref":
<pointer: 0x000000000011b688>
xl $ ActiveSheet () возвращает NULL
xl $ Selection () возвращает NULL
Когда я закрыл приложение Excel.
xl <- GetCurrXL () по-прежнему возвращает </p>
An object of class "COMIDispatch"
Slot "ref":
<pointer: 0x000000000011b688>
Я решил перезагрузить свой ноутбук и запустить RStudio.
Теперь он работает как обычно
library(DescTools)
BMI <- XLGetRange(header=TRUE)
ИМТ возвращает выбранный диапазон ячеек в Excel.