如何将excel文件中的两列相加到另一列中。我想将A列与B列相加,结果应该显示在C列中,但是如何在vba中进行呢?
例如:
Col A.
Col B.
Col C.
答案 0 :(得分:2)
如果这就是你所需要的,为什么不直接使用单元格C1的excel公式 “= SUM(A1,B1)”?如果它是更复杂的vba宏的一部分,你可以使用
cells(1,3).Formula = "=SUM(A1,B1)"
Range("C1:C3").FillDown
答案 1 :(得分:0)
有很多方法。例如:
Sub AddColumns()
Dim i As Long
For i = 1 To 3
Cells(i, 3).Value = Cells(i, 1).Value + Cells(i, 2).Value
Next i
End Sub
你也可以使用 Evaluate(),它稍微快一些,而且稍微模糊一些。
答案 2 :(得分:0)
你并没有很好地解决这个问题......如果你有兴趣在列中添加值(比如你),我看不出你为什么要使用VBA的原因。只需直接在单元格中添加值即可。
除此之外,你总是可以使用像
这样的功能Function DoColumnStuff( column_1 as Range, column_2 as Range ) as Variant
Dim returnColumn() as Variant
' resize returnColumn to a sensible size and
' populate it with sensible values, derived out of
' column_1 and column_2
DoColumnStuff = returnColumn
End Function
所以,无论你的心愿如何,你都可以用你的论点来做,并将其作为专栏返回。需要注意两点:首先,如果您希望函数返回列,则必须将returnColumn
的大小调整为具有1列维度的二维数组(例如10行,1列~~>使用Redim returnColumn( 1 to 10, 1 to 1 )
进行大小调整)。其次,您需要在Excel中将函数作为矩阵函数插入,即选择整个输出范围,输入公式并按Shift-Enter
答案 3 :(得分:0)
正如加里的学生所说,有很多方法,一个在下面 如果
A1包含1,B1包含1 A2包含2,B2包含2 A3含有3,B3含有3个
在C1列中粘贴以下公式
=IF(OR(ISBLANK(A1),ISBLANK(B1)),"Either A or B is Blank",SUM(A1:B1))
并选择C1到C3列,然后按Ctrl + D
在VBA中,
Sub Sample()
lastrow = ActiveSheet.UsedRange.Rows.Count
For i = 1 To lastrow
If Cells(i, 1) = "" And Cells(i, 2) = "" Then
Cells(i, 3) = "Both are Blank"
ElseIf Cells(i, 1) <> "" And Cells(i, 2) = "" Then
Cells(i, 3) = "B is Blank"
ElseIf Cells(i, 1) = "" And Cells(i, 2) <> "" Then
Cells(i, 3) = "A is Blank"
ElseIf Cells(i, 1) <> "" And Cells(i, 2) <> "" Then
Cells(i, 3) = Cells(i, 1) + Cells(i, 2)
End If
Next i
End Sub
或者你可以使用Function。直接进入excel表格如公式简单在C1中键入sumformula(A1,B1),输入后结果将出现在C1行。
请参阅下文
Function sumformula(a As String, b As String)
If a = "" And b = "" Then
sumformula = "Both are Blank"
ElseIf a <> "" And b = "" Then
sumformula = "B is Blank"
ElseIf a = "" And b <> "" Then
sumformula = "A is Blank"
ElseIf a <> "" And b <> "" And IsNumeric(a) = False And IsNumeric(b) = True Then
sumformula = "Column A is not a number"
ElseIf a <> "" And b <> "" And IsNumeric(a) = True And IsNumeric(b) = False Then
sumformula = "Column B is not a number"
ElseIf a <> "" And b <> "" And IsNumeric(a) = True And IsNumeric(b) = True Then
sumformula = WorksheetFunction.Sum(a, b)
End If
End Function
希望有所帮助