如何将记录集中的数据填充到列表对象中? 以下代码并不完全有效:
oCN.ConnectionString = "DRIVER={SQL Server};Server=SRVSQL;Database=TEST;"
oCN.Open
Dim sqlString As String
sqlString = "SELECT * FROM MYTABLE"
oRS.Open sqlString, oCN
With Feuil3.ListObjects("TableArticles")
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.Delete
End If
' This make a 91 error
Call .DataBodyRange.CopyFromRecordset(oRS)
' This copy data into sheet, not into listobject
Call Feuil3.Range("A2").CopyFromRecordset(oRS)
End With
答案 0 :(得分:1)
最后我找到了解决方案。 只需调整listobject的大小以适应内容:
With Feuil3.ListObjects("TableArticles")
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.Delete
End If
Call .Range(2, 1).CopyFromRecordset(oRS)
Call .Resize(Feuil3.UsedRange)
End With
答案 1 :(得分:0)
如果始终总是先删除library(data.table)
nm1 <- paste0("Q_", rep(c("var1", "var2"), each = 2), c(".Q25", ".Q75"))
setDT(d)[, (nm1) := unlist(lapply(.SD, function(x)
as.list(quantile(x, prob = c(0.25, 0.75)))), recursive = FALSE),
date, .SDcols = var1:var2]
d
# date var1 var2 Q_var1.Q25 Q_var1.Q75 Q_var2.Q25 Q_var2.Q75
#1: 2017-02-23 1 1 3.50 6.50 8 16.5
#2: 2017-02-22 3 3 3.00 3.00 3 3.0
#3: 2017-02-23 6 18 3.50 6.50 8 16.5
#4: 2017-02-23 7 15 3.50 6.50 8 16.5
#5: 2018-02-22 8 25 5.75 7.25 10 20.0
#6: 2018-02-22 5 5 5.75 7.25 10 20.0
,则可以使用`.InsertRowRange'。
.DataBodyRange