Макрос останавливается преждевременно - PullRequest
0 голосов
/ 28 февраля 2020

Макрос для продолжения перехода к следующей ячейке до тех пор, пока значение не совпадет, и для всех подобных значений вычтите значения из самой нижней строки

По сути, мои данные такие (есть только одна покупка для каждого имени, и это самая нижняя ячейка)

Name |   Transaction.Type |  Amount | Remaining (what macro needs to do)       

Name1 |      Sell  |         5    |     15 (20-5)

Name1  |    Sell    |       10     |      10 (20-10)

Name1   |   Sell     |      15     |     5  (20-15)

Name1   |   Buy    |        20       |

Name2  |    Sell    |       25      |      5

Name2   |   Buy     |       30        |

Пока мой макрос выглядит как

Dim sline As Integer
Dim eline As Integer
Dim rng As Range
Dim lastrow(1 To 3) As Long
Application.DisplayAlerts = False

With Worksheets("Testing Data 2")
lastrow(1) = .Cells(Rows.Count, "A").End(xlUp).Row
End With


 For i = 2 To 4151
   If Worksheets("Testing Data 2").Range("A" & i) <> Worksheets("Testing Data 2").Range("A" & i).Offset(1, 0) Then
    eline = i

    Worksheets("Testing Data 2").Range(":C" & eline)        

    'struggling to go from here

    End If
 Next i
 Application.DisplayAlerts = True

1 Ответ

1 голос
/ 28 февраля 2020

Вы можете сделать это без VBA, понимая, что каждый Name имеет только один экземпляр Buy

=SUMIFS(C:C,A:A,A3,B:B,"Buy")-C2      'Drag down as needed

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...