Я попытался модифицировать то, что у меня есть, но вылезает ошибка [vba]
Код
If ar(i - 1, 2) = ar(i, 2) Then
[/vba], очевидно, я не правильно определяю как сам диапазон для поиска, так и сам аргумент поиска, и мой "арсенал" знаний не дает мне возможность решить проблему Смысл самой процедуры. В каждой строке по порядку ищется сочетание "Наименование" + "Место" в ПРЕДЫДУЩИХ строках таблицы и, отображается ПОСЛЕДНЕЕ значение из столбца "Остаток" и так для всего столбца "остаток" умной таблицы. Так как столбцы "Остаток" и "Остаток на складе" друг от друга зависят, то я планировал сделать, что бы в столбец "Остаток" вносилась формула. Потом запускалась процедура, а после завершения процедуры формулы в столбце "остаток" менялись на значения.
Я попытался модифицировать то, что у меня есть, но вылезает ошибка [vba]
Код
If ar(i - 1, 2) = ar(i, 2) Then
[/vba], очевидно, я не правильно определяю как сам диапазон для поиска, так и сам аргумент поиска, и мой "арсенал" знаний не дает мне возможность решить проблему Смысл самой процедуры. В каждой строке по порядку ищется сочетание "Наименование" + "Место" в ПРЕДЫДУЩИХ строках таблицы и, отображается ПОСЛЕДНЕЕ значение из столбца "Остаток" и так для всего столбца "остаток" умной таблицы. Так как столбцы "Остаток" и "Остаток на складе" друг от друга зависят, то я планировал сделать, что бы в столбец "Остаток" вносилась формула. Потом запускалась процедура, а после завершения процедуры формулы в столбце "остаток" менялись на значения.AVI
Sub eeee() Dim ar, i, j ar = Range("Главная_tb") 'таблицу в массив For i = 1 To UBound(ar) 'цакл с первой по последнюю If i > 1 Then 'для строк, начиная со второй For j = i - 1 To 1 Step -1 'цикл от предыдущей до первой If ar(i, 2) = ar(j, 2) Then 'если i-ая равна j-ой наименование If ar(i, 4) = ar(j, 4) Then 'если i-ая равна j-ой место ar(i, 10) = ar(j, 13) 'остаток на складе i равен остатку j Exit For 'выход из цикла по j End If End If Next j End If ar(i, 13) = ar(i, 10) + ar(i, 11) - ar(i, 12) 'расчет остатка по i Next i Range("Главная_tb") = ar 'массив в таблицу End Sub
[/vba]
Так нужно? [vba]
Код
Sub eeee() Dim ar, i, j ar = Range("Главная_tb") 'таблицу в массив For i = 1 To UBound(ar) 'цакл с первой по последнюю If i > 1 Then 'для строк, начиная со второй For j = i - 1 To 1 Step -1 'цикл от предыдущей до первой If ar(i, 2) = ar(j, 2) Then 'если i-ая равна j-ой наименование If ar(i, 4) = ar(j, 4) Then 'если i-ая равна j-ой место ar(i, 10) = ar(j, 13) 'остаток на складе i равен остатку j Exit For 'выход из цикла по j End If End If Next j End If ar(i, 13) = ar(i, 10) + ar(i, 11) - ar(i, 12) 'расчет остатка по i Next i Range("Главная_tb") = ar 'массив в таблицу End Sub
Sub eeee() Dim ar, i, j ar = Range("Главная_tb") 'таблицу в массив For i = 1 To UBound(ar) 'цакл с первой по последнюю ar(i, 10) = 0 If i > 1 Then 'для строк, начиная со второй For j = i - 1 To 1 Step -1 'цикл от предыдущей до первой If ar(i, 2) = ar(j, 2) Then 'если i-ая равна j-ой наименование If ar(i, 4) = ar(j, 4) Then 'если i-ая равна j-ой место ar(i, 10) = ar(j, 13) 'остаток на складе i равен остатку j Exit For 'выход из цикла по j End If End If Next j End If ar(i, 13) = ar(i, 10) + ar(i, 11) - ar(i, 12) 'расчет остатка по i Next i Range("Главная_tb") = ar 'массив в таблицу End Sub
[/vba]
[vba]
Код
Sub eeee() Dim ar, i, j ar = Range("Главная_tb") 'таблицу в массив For i = 1 To UBound(ar) 'цакл с первой по последнюю ar(i, 10) = 0 If i > 1 Then 'для строк, начиная со второй For j = i - 1 To 1 Step -1 'цикл от предыдущей до первой If ar(i, 2) = ar(j, 2) Then 'если i-ая равна j-ой наименование If ar(i, 4) = ar(j, 4) Then 'если i-ая равна j-ой место ar(i, 10) = ar(j, 13) 'остаток на складе i равен остатку j Exit For 'выход из цикла по j End If End If Next j End If ar(i, 13) = ar(i, 10) + ar(i, 11) - ar(i, 12) 'расчет остатка по i Next i Range("Главная_tb") = ar 'массив в таблицу End Sub