错误13 – types不匹配加2列在一起

我猜我不能逃避这个?

Workbooks(ms).Sheets(fm).Range("H1:H50000").Value = Workbooks(ss).Sheets(cl).Range("I1:I50000").Value + Workbooks(ss).Sheets(cl).Range("J1:J50000").Value 

试图让新的列成为另外两个值的总和。 为什么不让我?

另外,下面的工作很好。 这只是当我尝试添加2列:

 Workbooks(ms).Sheets(fm).Range("A1:A50000").Value = Workbooks(ss).Sheets(cl).Range("M1:M50000").Value 

我想你可能需要以某种方式做一个数组。 Range(A1:A10).Value = Range(B1:B10).Value ,试图做... = Range(B1:B10).Value + Range(C1:C10).Value ,VBA不是真的明白发生了什么…

尝试循环遍历每个单元格:

 Dim i As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual With Workbooks(ss).Sheets(cl) For i = 1 To 50000 Workbooks(ms).Sheets(fm).Range("H" & i).Value = .Range("I" & i).Value + .Range("J" & i).Value Next i End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic 

Range.value是一个Varianttypes,或者基本上是一个数组。 你在底部的例子中正在做的是复制一个数组(列A)到另一个数组(列M)。

然而,数组操作不会扩展到对数组内的值进行算术运算,就像您期望从第一个例子中得到的那样。 那么总结一个数组的最好方法是什么?

事实certificate,即使通过VBA进行编程,您也可以访问所有Excel函数,而且Excel在math范围上performance出色。 我推荐的select是将H设置为这样的公式:

 Workbooks(ms).Sheets(fm).Range("H1:H50000").Formula = "='[ss]cl'!I1+'[ss]cl'!J1" 

如果要将单元格设置为值,请添加第二行:

 Workbooks(ms).Sheets(fm).Range("H1:H50000").Value2 = Workbooks(ms).Sheets(fm).Range("H1:H50000").Value2