Здравствуйте. Наваял формулы для изменения цены в "Образец (правлено)", исходя из листа "Прайс Поставщик". Но столкнулся с проблемой - как добавить строки новыми кодами товаров. Чую, что это макросы. Дайте совет.
Здравствуйте. Наваял формулы для изменения цены в "Образец (правлено)", исходя из листа "Прайс Поставщик". Но столкнулся с проблемой - как добавить строки новыми кодами товаров. Чую, что это макросы. Дайте совет.Dream-By
Sub uuu() Dim a() Dim i& Dim sd As Object With Sheets("Образец (правлено)") With .Range("A5:C" & .Cells(Rows.Count, 1).End(xlUp).Row) a = .Value Set sd = CreateObject("Scripting.Dictionary") For i = 1 To UBound(a) If a(i, 1) <> "" Then sd.Item(a(i, 1)) = a(i, 2) & "|" & a(i, 3) Next With Sheets("Прайс Поставщик") a = .Range("A4:C" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With For i = 1 To UBound(a) If a(i, 1) <> "" Then sd.Item(a(i, 1)) = a(i, 2) & "|" & a(i, 3) Next ReDim a(1 To sd.Count, 1 To 3) i = 1 For Each key_ In sd.Keys sp = Split(sd.Item(key_), "|") a(i, 1) = key_ a(i, 2) = sp(0) a(i, 3) = CDbl(sp(1)) i = i + 1 Next .ClearContents End With .Cells(5, 1).Resize(UBound(a), 3) = a End With Beep End Sub
[/vba]
Как могу:
[vba]
Код
Sub uuu() Dim a() Dim i& Dim sd As Object With Sheets("Образец (правлено)") With .Range("A5:C" & .Cells(Rows.Count, 1).End(xlUp).Row) a = .Value Set sd = CreateObject("Scripting.Dictionary") For i = 1 To UBound(a) If a(i, 1) <> "" Then sd.Item(a(i, 1)) = a(i, 2) & "|" & a(i, 3) Next With Sheets("Прайс Поставщик") a = .Range("A4:C" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With For i = 1 To UBound(a) If a(i, 1) <> "" Then sd.Item(a(i, 1)) = a(i, 2) & "|" & a(i, 3) Next ReDim a(1 To sd.Count, 1 To 3) i = 1 For Each key_ In sd.Keys sp = Split(sd.Item(key_), "|") a(i, 1) = key_ a(i, 2) = sp(0) a(i, 3) = CDbl(sp(1)) i = i + 1 Next .ClearContents End With .Cells(5, 1).Resize(UBound(a), 3) = a End With Beep End Sub
Почти месяц прошёл. Скачал последний файл, вставил макрос и нет ошибки. Уже не помню про что там писал, вроде собираем уникальные "коды" с 2х листов и выгружаем на лист "правлено". В первом примере диапазон начинался не со второй строки, треба поправить.
Почти месяц прошёл. Скачал последний файл, вставил макрос и нет ошибки. Уже не помню про что там писал, вроде собираем уникальные "коды" с 2х листов и выгружаем на лист "правлено". В первом примере диапазон начинался не со второй строки, треба поправить.wild_pig
Сообщение отредактировал wild_pig - Воскресенье, 16.11.2014, 09:33