Cоздал 3 столбца. В первый столбец вписываются данные, которые сверяются с 3-м (в 3-м данные вставляются заранее) Данные с 1-го и 3-го столбца сравниваются. 2-ой столбец показывает те данные, которые еще не были вписаны в 1-й, но есть в 3-ем. Есть одно но... Бывает, что одинаковых данных несколько, и при вписывании в 1-й столбец наименования, вместо одного, вычитаются все такие одинаковые с 3-го... (Пример во вложении) Нужно, что бы одинаковые данные убирались поочередно, по 1-му, иначе непонятно, все ли наименования прописывались. Подскажите пожалуйста, есть ли решение данной проблемы?
Доброго времени суток!
Cоздал 3 столбца. В первый столбец вписываются данные, которые сверяются с 3-м (в 3-м данные вставляются заранее) Данные с 1-го и 3-го столбца сравниваются. 2-ой столбец показывает те данные, которые еще не были вписаны в 1-й, но есть в 3-ем. Есть одно но... Бывает, что одинаковых данных несколько, и при вписывании в 1-й столбец наименования, вместо одного, вычитаются все такие одинаковые с 3-го... (Пример во вложении) Нужно, что бы одинаковые данные убирались поочередно, по 1-му, иначе непонятно, все ли наименования прописывались. Подскажите пожалуйста, есть ли решение данной проблемы?Paradise9373
Sub Обновить_остаток() Dim dic_texn, cell_texn, cell_kompl
On Error Resume Next Set dic_texn = CreateObject("Scripting.Dictionary") With Sheets("1") .Cells(2, 4).Resize(Application.CountA(.[D:D]) - 1, 1).ClearContents For Each cell_texn In .Cells(2, 6).Resize(Application.CountA(.[F:F]) - 1, 1) If Not dic_texn.exists(cell_texn.Value) Then dic_texn.Add Key:=cell_texn.Value, Item:=0& End If Next For Each cell_kompl In .Cells(2, 2).Resize(Application.CountA(.[A:A]), 1) If cell_kompl.Value <> 0 Then dic_texn.Remove cell_kompl.Value End If Next .Cells(2, 4).Resize(dic_texn.Count) = Application.Transpose(dic_texn.Keys) End With End Sub
[/vba]
Здравствуйте! Могу предложить вариант с макросом
[vba]
Код
Sub Обновить_остаток() Dim dic_texn, cell_texn, cell_kompl
On Error Resume Next Set dic_texn = CreateObject("Scripting.Dictionary") With Sheets("1") .Cells(2, 4).Resize(Application.CountA(.[D:D]) - 1, 1).ClearContents For Each cell_texn In .Cells(2, 6).Resize(Application.CountA(.[F:F]) - 1, 1) If Not dic_texn.exists(cell_texn.Value) Then dic_texn.Add Key:=cell_texn.Value, Item:=0& End If Next For Each cell_kompl In .Cells(2, 2).Resize(Application.CountA(.[A:A]), 1) If cell_kompl.Value <> 0 Then dic_texn.Remove cell_kompl.Value End If Next .Cells(2, 4).Resize(dic_texn.Count) = Application.Transpose(dic_texn.Keys) End With End Sub