Я приложил две ссылки на блок-схему того, как должен работать код VBA, и скриншот моих двух листов.Почему мой код VBA продолжает висит?
В принципе, у меня есть два листа - "Выплаты" & "Check Info". На листе «Расходы» мне нужно рассмотреть только строки с count> 1 (столбец I). Например, я не буду рассматривать строку 8 столбца I, но рассмотрю строку 12. Каждая строка с числом> 1 должна иметь значение в строке H к концу прогона. После того, как какая строка имеет счетчик> 1, мы проверяем, равна ли соответствующая сумма (столбец F) столбцу проверки информации E. Тогда, если, например, для строки 12 выплат, 1,384.35 равна строке 9 контрольной информации. Мы должны получить разницу этих дат, а затем сохранить ее в переменной «Текущий». Но есть много «1,384.35», что мы должны получить минимальную разницу для дат, таким образом, потребность в цикле.
Опять же, мне нужно сделать циклы для каждой строки с числом столбцов> 1 на столбцах I, так что я получу дату в Check Info (с той же суммой), которая имеет минимальный пробел от даты на листе выплат. Например, дата с наименьшим разрывом за 1/18/2016 (на сумму 1 384,35) составляет 1/4/2016.
Вот мой текущий код:
Sub F110Loop()
Dim x As Integer 'current amount
Dim y As Integer
Dim d As Double 'delta between Disbursement date and Cheque Release date
Dim Current As Integer
Dim Least As Integer
Dim Dis As Worksheet
Dim Cheque As Worksheet
Dim wb As Workbook
Set wb = ThisWorkbook
Set Dis = wb.Sheets("Disbursements")
Set Cheque = wb.Sheets("Cheque Info")
wb.Activate
For x = 4 To 600
Do While Dis.Cells(x, 9).Value > 1
'IF same amount, get row number to get corresponding date, reference that date
For y = 3 To 600
If Dis.Cells(x, 6).Value = Cheque.Cells(y, 5).Value Then
'THEN get delta
Current = Dis.Cells(x, 4).Value -Cheque.Cells(y, 2)
'IF current is less than the least delta
ElseIf Current < Least Then
'THEN update new value of delta
Current = Least
Else
'copy paste the date (from the least delta row)
Cheque.Cells(y, 2).Copy Destination:=Dis.Cells(x, 8)
End If
Next y
Loop
Next x
End Sub
Большое спасибо @thomas inzina :) – Chesca
Вы очень приветствуете. Надеюсь, это помогло. :) –