我想知道是否有更快的方法将值列表插入到表对象中。我使用的方法是这样的:
1)清除表中的旧数据
2)找到向表中添加新的日期值并让表公式自动填充。
现在的问题是这个过程非常慢,因为我有大约7个表和4k +日期来填充。
通常,如果它只是粘贴这些值,那么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()是指我想要粘贴到单元格中的日期。
不确定我对问题的描述是否足够清楚。
答案 0 :(得分:1)
快速搜索this answer。
要将其应用于您的案例,而不是: -
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