在VBA中添加两列

在VBA中添加两列,vba,excel,Vba,Excel,我在excel表格中有两列,分别称为numOne和numTwo,如下所示: numOne numTwo 1 2 2 3 3 6 4 7 现在我想写一个VBA宏来添加这些列,并创建第三列numSum 我怎样才能做到? 输出应如下所示: numOne numTwo numSum 1 2 3 2 3 5 3 6 9 4 7 11 提前感谢正

我在excel表格中有两列,分别称为numOne和numTwo,如下所示:

numOne  numTwo
1       2
2       3
3       6
4       7
现在我想写一个VBA宏来添加这些列,并创建第三列numSum 我怎样才能做到? 输出应如下所示:

 numOne  numTwo  numSum
1       2        3
2       3        5
3       6        9
4       7        11

提前感谢

正如vba4all所说,您可以使用公式轻松完成此操作,但要使用VBA完成此操作,您可以尝试:


假设您的输入位于电子表格的第1列和第2列,从第2行开始,即使Excel公式更加合理,您也可以达到这样的目的:

Sub numSum()
Dim count As Integer: count = 0
Cells(1,3) = "numSum"
Do While Cells(1,count + 2) <> ""
    Cells(3,count+2) = Cells(1,count+2) + Cells(2,count+2)
    count = count + 1
Loop
End Sub

…这是解决问题的纯VBA方法,即电子表格中只有硬编码数据,而不向单元格添加任何公式。

Hi。通常人们不会在这里要求现成的代码。您至少应该自己尝试一些东西,然后在出现特定问题时请求解决方案。好的,稍后将在此处发布。为什么需要代码?你不能只做一个公式C2=A2+B2吗?我试过同样的代码,但不是在条件检查a时做,而是在检查NULL,这会导致类型不匹配error@AmanMathur,null是一种对象类型,在VBA语法中具有关键字Nothing,这就是类型不匹配的原因。循环查看单元格值:单元格是对象,值是单元格的属性。一般来说,在编写代码时要明确这一区别。这不是什么大问题,因为代码不编译,但有时同样的错误可能会导致代码编译,但有一个深刻的概念错误,导致错误的结果/行为。P.S.考虑如果你满意,标记答案;另一个技巧:如果您编写Do While单元格0,在您的特定示例中,它也可以工作。但是,这样做可能会导致数据集中存在合法的0,并且循环在找到该值时将停止。因此,最好使用条件Do While单元格,这样您就知道只有当单元格完全为空时,循环才会中断。
Sub numSum()
Dim count As Integer: count = 0
Cells(1,3) = "numSum"
Do While Cells(1,count + 2) <> ""
    Cells(3,count+2) = Cells(1,count+2) + Cells(2,count+2)
    count = count + 1
Loop
End Sub