我正在尝试执行以下操作,因为我们知道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中自动执行此操作?
答案 0 :(得分:0)
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 :(得分:0)
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代码。
您必须在 for loop 中定义范围,目前它是从第2行设置为第25行。
答案 2 :(得分:0)
OFFSET with ROW()是您在任何重复的第n行/列问题上的朋友。
=B1-OFFSET(A$1,ROUNDUP(ROW()/3,0)-1,0)
,复制到C列。
1 5 4
2 3 2
3 5 4
4 7 5
5 4 2
6 9 7
答案 3 :(得分:-1)
您可以在函数中使用$($ B5- $ A1)并将光标与C列上的单元格拖动到最后写入的元素。