我有以下代码
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
中的值是0
,1e-5
,2e-5
等形式的时间数据。
有人能建议一个简单的方法吗?为什么会这样?
编辑:从我所看到的,目的地的范围是正确的大小(它与X_values具有相同的行数) 此外,由于显而易见的原因,我不会单独写入每个单元格:更新需要永远
答案 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
不知何故,这种方法有效,而且几乎同样有效。它有粘贴到整个列的缺点(不可能粘贴到足够大的选定范围),但这更容易解决。
感谢你们的建议