RDCOMClient - 设置垂直范围值

RDCOMClient - Set Vertical Range Values

我正在尝试使用 RDCOMClient 库将值写入垂直 Range。由于 RDCOMClient 允许您编写与 VBA 非常相似的代码,我一直在寻找在 VBA 中执行此操作的方法,然后转换为 R.

创建 excel 的基本 R 代码是:

app <- COMCreate("Excel.Application")
app[['Visible']] <- TRUE

workbook <- app$WorkBooks()$Open(path)
sheet <- workbook$Worksheets(sheet_name)
sheet$Activate()

如果我的 Range 水平的 那么我可以简单地把它写成:

因为 Range 垂直的 代码是:

问题是 垂直大小写的 R "translation" 不起作用

在控制台中打印 range[['Value']] 显示:

[[1]]
[[1]][[1]]
NULL

[[1]][[2]]
NULL

[[1]][[3]]
NULL

并且 app$Transpose(c(1,2,3)) 显示:

[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] 2

[[1]][[3]]
[1] 3

为什么没有正确设置值?正确的做法是什么?

我也试过使用矩阵:

range[['Value']] <- matrix(nrow = 3, c(1,2,3))

但是报错:

Can't attach the RDCOMServer package needed to create a generic COM object

我也试过直接设置range[['Value']][[1]]没有成功。

在单元格 B3B9:

中放置垂直 1:7
r= sheet$Range("B3:B9")
r[["Value"]] <- asCOMArray(matrix(1:7, 7, 1))