Vba 如何在Excel中有条件地进行减法?
我试图在知道A列和B列是数据,C列是结果的情况下执行以下操作:Vba 如何在Excel中有条件地进行减法?,vba,excel,Vba,Excel,我试图在知道A列和B列是数据,C列是结果的情况下执行以下操作: A B C 1 5 (B1-A1)=4 2 3 (B2-A1)=2 3 5 (B3-A1)=4 4 7 (B4-A2)=5 5 4 (B5-A2)=3 6 9 (B6-A2)=7 . . . . 如何在Excel或Excel Visual Basic中自动执行此操作?您可以在函数($B5-$A1)中使用$,并将
A B C
1 5 (B1-A1)=4
2 3 (B2-A1)=2
3 5 (B3-A1)=4
4 7 (B4-A2)=5
5 4 (B5-A2)=3
6 9 (B6-A2)=7
.
.
.
.
如何在Excel或Excel Visual Basic中自动执行此操作?您可以在函数($B5-$A1)中使用$,并将光标与C列上的单元格一起拖动到写入的最后一个元素
A B C
1 4 =B2-A2
1 2 =B3-A3
1 3 =B4-A4
=A2+1 5 =B5-A5
=A3+1 6 =B6-A6
=A4+1 7 =B7-A7
=A5+1 6 =B8-A8
=A6+1 7 =B9-A9
=A7+1 9 =B10-A10
您可以使用1启动前3行,然后只需在第4行A列中添加1即可;向下拖动公式。随后,您可以从A列中减去B列
唯一的缺点是,列A不是每一步递增1的序列,而是每四次递增1的序列
Sub sequence()
Dim i As Integer
Dim j As Integer
i = 2
j = 2
For i = 2 To 25 Step 3
Cells(i, 3) = Cells(i, 2) - Cells(j, 1)
Cells(i + 1, 3) = Cells(i + 1, 2) - Cells(j, 1)
Cells(i + 2, 3) = Cells(i + 2, 2) - Cells(j, 1)
j = j + 1
Next i
End Sub
下面是解决这个问题的VBA代码
您必须在中为循环定义范围,当前它设置为从第2行到第25行第n行/列重复出现问题时,可以使用行偏移()
=B1-偏移量(A$1,汇总(行()/3,0)-1,0)
,向下复制C列
1 5 4
2 3 2
3 5 4
4 7 5
5 4 2
6 9 7
谢谢你的回复,我没有提到A列不是递增的,A列和B列是原始数据(不可调整),我可能使用了一个坏例子,使用串行形式的数据,忘记了A列中数据的形状,我的问题是,如何从A列中的一个数据中减去B列中的3个数据,如我在问题中提到的,并对A中的1072行和B中的362行执行此操作?谢谢你的努力。我做到了,但没有成功!!无论如何,谢谢你的帮助。我试过了。但是,当我复制单元格时,A$1不会移动,但是非常感谢你的努力,我在中的问题得到了回答。Regards@user3449078A$1并不意味着在你向下复制时移动……如果你尝试了它,你会看到它给出了正确的结果,如上所示。是的,你是正确的,它给了我错误的答案,因为我的列有标题,数据从第3行开始。所以,当我将数据从第1行开始移动时,它工作正常,非常感谢您的帮助!!!Regards@user3449078啊,这是有道理的。很高兴这两种方法都奏效了;)