一次写入大量Excel单元格

时间:2014-08-25 15:54:56

标签: excel-vba vba excel

我有以下代码

Dim Destination As Range
Set Destination = Cells(2, 1)
Set Destination = Destination.Resize(UBound(X_values), 1)
Destination.Value = Application.Transpose(X_values)

我希望将X_values中的值插入第1列,从第2行开始。上面的代码适用于大多数数据集,但我通常也想在超过100000的数据上使用它点,我得到错误"类型不匹配"

X_values中的值是01e-52e-5等形式的时间数据。

有人能建议一个简单的方法吗?为什么会这样?

编辑:从我所看到的,目的地的范围是正确的大小(它与X_values具有相同的行数) 此外,由于显而易见的原因,我不会单独写入每个单元格:更新需要永远

1 个答案:

答案 0 :(得分:0)

最终在同事的帮助下解决了这个问题

问题,就像我所知道的那样,Excel不喜欢转置大量数据 - 为什么这是Excel中的问题,而不是任何其他语言,我不知道。

解决方案:

Range("A2").Select
ActiveCell.FormulaR1C1 = "=(ROW(RC)-2)*" & CStr(dt)
Range("A2").Select
Selection.Copy

'Range(Cells(1, 2), Cells(2, max+1)).Select
Columns("A:A").Select
ActiveSheet.Paste
Range("A1").Select
Selection.ClearContents

(我想从A2开始,为标题留出空间)

dt这里是增量,1e-5

不知何故,这种方法有效,而且几乎同样有效。它有粘贴到整个列的缺点(不可能粘贴到足够大的选定范围),但这更容易解决。

感谢你们的建议