如何将数组列表插入表?

我想知道是否有一个更快的方式来插入一个值列表到一个表格对象。 我使用的方法是这样的:

1)清除表格中的旧数据

2)find新的date值添加到表中,并让表公式自动填充。

现在的问题是,这个过程是非常缓慢的,因为我有大约7个表格和4k +date填充。

通常如果只是粘贴这些值,excel的工作速度非常快。 但是,当涉及到表格对象时,由于某种原因它会变慢很多。

我认为有办法通过操纵表格对象快很多,但是到目前为止我还没有运气。

*table1 1 2 3 4 5 6 A Date 1D 2D 3D 4D 5D B 1/1/2016 Formula Formula Formula Formula Formula C 2/1/2016 Formula Formula Formula Formula Formula D 3/1/2016 Formula Formula Formula Formula Formula E 4/1/2016 Formula Formula Formula Formula Formula F 5/1/2016 Formula Formula Formula Formula Formula G 6/1/2016 Formula Formula Formula Formula Formula H 7/1/2016 Formula Formula Formula Formula Formula Dim ws(), datelist() As Variant For i = 1 To UBound(ws) For j = 1 To UBound(datelist) Sheets(CStr(ws(i))).Cells(j + 1, 1) = datelist(j) Next j Next i 

* ws()是指存储工作表名称的数组

* datelist()是指我想要粘贴到单元格中的date。

不知道我的问题描述是否足够清楚。

做一个快速search提出了这个答案 。

将其应用于您的案例,而不是: –

 For i = 1 To UBound(ws) For j = 1 To UBound(datelist) Sheets(CStr(ws(i))).Cells(j + 1, 1) = datelist(j) Next j Next i 

使用: –

 For i = 1 To UBound(ws) Sheets(CStr(ws(i))).Range("A" & j + 1 & ":A" & j + (1 + UBound(datelist))) = WorksheetFunction.Transpose(datelist) Next i