Excel VBA减去具有相同标签的值

Excel VBA减去具有相同标签的值,vba,excel,Vba,Excel,如果单元格有相同的数据包标签,我将做一些关于减去时间值的事情,假设我有如下数据: | 1 | A | 01 | x | | 2 | B | 03 | x | | 3 | A | 05 | x | | 4 | C | 06 | x | | 5 | B | 09 |

如果单元格有相同的数据包标签,我将做一些关于减去时间值的事情,假设我有如下数据:

| 1  |   A   |  01  |   x   |                  
| 2  |   B   |  03  |   x   |                  
| 3  |   A   |  05  |   x   |                 
| 4  |   C   |  06  |   x   |            
| 5  |   B   |  09  |   x   |  
| 6  |   A   |  11  |   x   |
值应该是这样的:

| 1  |   A   |  01  |   4   | >> Value of subtract time A1 from A3 5-1 = 4  
| 2  |   B   |  03  |   6   | >> Value of subtract time B2 from A5 9-3 = 6   
| 3  |   A   |  05  |   6   | >> Value of subtract time A3 from A6 11-5 = 6 
| 4  |   C   |  06  | value |  
| 5  |   B   |  09  | value |   
| 6  |   A   |  11  | value | 
我目前的代码是:

sub deltaip()

dim x as long
dim i as long

for i = 2 to rows.count
for x = 3 to rows.count

if cells(i,2).value = cells(x,2).value then cells(i,4) = cells(x,3).value-cells(i,3).value

next x
next i

End Sub
但是它被卡住了,我需要让X循环停止,每次它找到相同的值,做减法,然后继续下一个X。我还发现,在下一个i循环中,X不会从3重置,而是从上一个X值开始重置,有什么问题吗


有人能帮我吗?我对Excel上的VBA非常陌生,提前感谢您通过将更改为Do来完成,就像实际工作表上的代码一样:

Sub deltaip()

Dim x As Long
Dim i As Long
Dim n As Long

n = 3
x = 3

For i = 2 To 11

Do Until Cells(i, 3).Value = Cells(x, 3).Value
x = x + 1
If x > 12 Then Exit Do
Loop

If Cells(x, 2).Value - Cells(i, 2).Value > 0 Then
Cells(i, 8) = Cells(x, 2).Value - Cells(i, 2).Value
Else
Cells(i, 8) = ""
End If

n = n + 1
x = n



Next i

End Sub