错误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