Добрый день!, помогите новичку в общем на лист1 есть типо прайса, колонка A-артикул, B-наименование, D-количество. Вставляю на лист2 другую таблицу, где A-артикул, B-наименование, D-количество. нужно чтоб exel сканировал лист1(столбец A) и лист2(столбец A) и при совподении артикулов нужно чтоб он копировал из листа2(столбец D количество) в лист1 (столбец D количество)
в поиске нашел токо вот такой макрос но не как не могу добится работоспособности.
PublicSub Compare() Dim i AsInteger Dim wb As Excel.Workbook
Set wb = Excel.Workbooks("Книга1") 'получаем экземпляр книги с которой нужно сравнивать
'проверить 100 строк For i = 1To100 If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) <> wb.Worksheets("Лист1").Cells(i, 1) Then ' в столбец С пишем значение из столбца В книги 1
ThisWorkbook.Worksheets("Лист1").Cells(i, 3) = wb.Worksheets("Лист1").Cells(i, 2) EndIf Next i EndSub
Admin: Оформляйте коды тегами, во избежание бана!
Добрый день!, помогите новичку в общем на лист1 есть типо прайса, колонка A-артикул, B-наименование, D-количество. Вставляю на лист2 другую таблицу, где A-артикул, B-наименование, D-количество. нужно чтоб exel сканировал лист1(столбец A) и лист2(столбец A) и при совподении артикулов нужно чтоб он копировал из листа2(столбец D количество) в лист1 (столбец D количество)
в поиске нашел токо вот такой макрос но не как не могу добится работоспособности.
PublicSub Compare() Dim i AsInteger Dim wb As Excel.Workbook
Set wb = Excel.Workbooks("Книга1") 'получаем экземпляр книги с которой нужно сравнивать
'проверить 100 строк For i = 1To100 If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) <> wb.Worksheets("Лист1").Cells(i, 1) Then ' в столбец С пишем значение из столбца В книги 1
ThisWorkbook.Worksheets("Лист1").Cells(i, 3) = wb.Worksheets("Лист1").Cells(i, 2) EndIf Next i EndSub
[admin]Оформляйте коды тегами, во избежание бана![/admin]shoma
Сообщение отредактировал shoma - Пятница, 30.08.2013, 10:09
For j = 2To ThisWorkbook.Worksheets("Лист2").Cells(1, 1).End(xlDown).Row For i = 2To ThisWorkbook.Worksheets("Лист1").Cells(1, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист2").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 4) = ThisWorkbook.Worksheets("Лист2").Cells(j, 4) ExitFor EndIf Next i Next j EndSub
PS Почему у меня при вставке из буфера русские буквы превращаются в крякозябры?
PublicSub Compare() Dim i AsLong Dim j AsLong
For j = 2To ThisWorkbook.Worksheets("Лист2").Cells(1, 1).End(xlDown).Row For i = 2To ThisWorkbook.Worksheets("Лист1").Cells(1, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист2").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 4) = ThisWorkbook.Worksheets("Лист2").Cells(j, 4) ExitFor EndIf Next i Next j EndSub
PS Почему у меня при вставке из буфера русские буквы превращаются в крякозябры?SergeyKorotun
Формуляр, чтож такие злые)), читал я правила и поиском пользовался.
нужно с листа5, столбик H(сумм.кол) должно скопироватся в лист1, столбик F. кол-во, при совпадении кода, файл перевел в 2003г но все равно выложить не могу он превышает 200кб, уже половина поудалял и все равно большой сильно
Формуляр, чтож такие злые)), читал я правила и поиском пользовался.
нужно с листа5, столбик H(сумм.кол) должно скопироватся в лист1, столбик F. кол-во, при совпадении кода, файл перевел в 2003г но все равно выложить не могу он превышает 200кб, уже половина поудалял и все равно большой сильноshoma
Уже само наименование столбца "Код" подразумевает заполнение его уникальными значениями, а у вас есть пустые ячейки. Сначала заполните их значениями а потом запускайте макрос. Если все же в коде могут присутствовать пустые значения, то определение конечных ячеек
нужно как то по другому определять, например через UsedRange
Sub Синхронизация() Dim i AsLong Dim j AsLong
For j = 2To ThisWorkbook.Worksheets("Лист5").Cells(1, 1).End(xlDown).Row For i = 41To ThisWorkbook.Worksheets("Лист1").Cells(40, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист5").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 6) = ThisWorkbook.Worksheets("Лист5").Cells(j, 8) ExitFor EndIf Next i Next j EndSub
Уже само наименование столбца "Код" подразумевает заполнение его уникальными значениями, а у вас есть пустые ячейки. Сначала заполните их значениями а потом запускайте макрос. Если все же в коде могут присутствовать пустые значения, то определение конечных ячеек
нужно как то по другому определять, например через UsedRange
Sub Синхронизация() Dim i AsLong Dim j AsLong
For j = 2To ThisWorkbook.Worksheets("Лист5").Cells(1, 1).End(xlDown).Row For i = 41To ThisWorkbook.Worksheets("Лист1").Cells(40, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист5").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 6) = ThisWorkbook.Worksheets("Лист5").Cells(j, 8) ExitFor EndIf Next i Next j EndSub
Формуляр, в ячейке с количеством не должно быть формул, поэтому и хочу сделать через макрос, совпадения есть точно 3 штуки(я их специально делал). Это я только начинаю ее доводить до ума поэтому пока вводом артикулов не занимался. На листе5 туда выгружеться эта спецификация из другой программы, и то что не заполнилось на листе1 будет заполнятся в ручную. Это еще эспирементальный файл
Формуляр, в ячейке с количеством не должно быть формул, поэтому и хочу сделать через макрос, совпадения есть точно 3 штуки(я их специально делал). Это я только начинаю ее доводить до ума поэтому пока вводом артикулов не занимался. На листе5 туда выгружеться эта спецификация из другой программы, и то что не заполнилось на листе1 будет заполнятся в ручную. Это еще эспирементальный файлshoma
вот с этим макросом авто заполнение работает ровно до пустой строчки на листе5, если заполнить все срочки то все работает, просто не у всех материалов есть код, это можно как нибудь обойти?
SergeyKorotun,
вот с этим макросом авто заполнение работает ровно до пустой строчки на листе5, если заполнить все срочки то все работает, просто не у всех материалов есть код, это можно как нибудь обойти?shoma
For j = 2To ThisWorkbook.Worksheets("Лист5").Cells(65536, 1).End(xlUp).Row For i = 41To ThisWorkbook.Worksheets("Лист1").UsedRange.Rows.Count 'Cells(40, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) <> ""And ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист5").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 6) = ThisWorkbook.Worksheets("Лист5").Cells(j, 8) ExitFor EndIf Next i Next j EndSub
PS 14:14 немного подправил
Sub Синхронизация() Dim i AsLong Dim j AsLong
For j = 2To ThisWorkbook.Worksheets("Лист5").Cells(65536, 1).End(xlUp).Row For i = 41To ThisWorkbook.Worksheets("Лист1").UsedRange.Rows.Count 'Cells(40, 1).End(xlDown).Row If ThisWorkbook.Worksheets("Лист1").Cells(i, 1) <> ""And ThisWorkbook.Worksheets("Лист1").Cells(i, 1) = ThisWorkbook.Worksheets("Лист5").Cells(j, 1) Then
ThisWorkbook.Worksheets("Лист1").Cells(i, 6) = ThisWorkbook.Worksheets("Лист5").Cells(j, 8) ExitFor EndIf Next i Next j EndSub
совпадения есть точно 3 штуки(я их специально делал)
Действительно есть. Только вы не указали, с какой строчки список начинается (вернее, указали, что с 1ой). Я с 1й и вставил. Держите макрос.
Sub Синхронизация() Dim i AsLong Dim j AsLong
For j = 2To[Лист5].Cells(1, 2).End(xlDown).Row For i = 41To[Лист1].Cells(40, 2).End(xlDown).Row If[Лист1].Cells(i, 1) = [Лист5].Cells(j, 1) Then [Лист1].Cells(i, 6) = [Лист5].Cells(j, 8) ExitFor EndIf Next i Next j EndSub
совпадения есть точно 3 штуки(я их специально делал)
Действительно есть. Только вы не указали, с какой строчки список начинается (вернее, указали, что с 1ой). Я с 1й и вставил. Держите макрос.
Sub Синхронизация() Dim i AsLong Dim j AsLong
For j = 2To[Лист5].Cells(1, 2).End(xlDown).Row For i = 41To[Лист1].Cells(40, 2).End(xlDown).Row If[Лист1].Cells(i, 1) = [Лист5].Cells(j, 1) Then [Лист1].Cells(i, 6) = [Лист5].Cells(j, 8) ExitFor EndIf Next i Next j EndSub
SergeyKorotun, работает! Огромное спасибо!!! что потратили на меня время, если не сложно можно узнать как сейчас работает макрос и по какому столбцу ищет?
SergeyKorotun, работает! Огромное спасибо!!! что потратили на меня время, если не сложно можно узнать как сейчас работает макрос и по какому столбцу ищет?shoma