Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 00:55   #1
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию Сравнение листов в книге, и копирование значений

Помогите пожалуйста.

Есть книга с 3 листами, нужно провести сравнение и копирование. Сравнение цен ведется по колонке "Артикул" листа "Цены_0", при нахождении в колонке "А" в названии соответствующего "Артикула" в листах "Цены_1", "Цены_2", нужно скопировать значение в соответствующую ячейку в колонки листа "Цены_0".
Josser вне форума Ответить с цитированием
Старый 20.07.2009, 01:16   #2
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию

Не получилось сразу файл прикрепить, попробую еще раз...
Вложения
Тип файла: rar Сравнение цен.rar (15.7 Кб, 19 просмотров)
Josser вне форума Ответить с цитированием
Старый 20.07.2009, 19:53   #3
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Josser Посмотреть сообщение
Помогите пожалуйста.

Есть книга с 3 листами, нужно провести сравнение и копирование. Сравнение цен ведется по колонке "Артикул" листа "Цены_0", при нахождении в колонке "А" в названии соответствующего "Артикула" в листах "Цены_1", "Цены_2", нужно скопировать значение в соответствующую ячейку в колонки листа "Цены_0".
Понимаю, что код ламерский и не оптимальный... но на сегодняшний день я лушче не могу )) буду благодарен за помощь

То что у меня вышло: (вроде работает):

Sub Сравнение_листов_0_1()
Application.ScreenUpdating = False

Dim s1, s2 As String
Dim i, n As Integer

For i = 2 To 100

s1 = Worksheets("Лист_0").Cells(i, 1).Text
For n = 2 To 100

s2 = Worksheets("Лист_1").Cells(n, 1).Text
If InStr(s2, s1) Then Worksheets("Лист_0").Cells(i, 4).Value = Worksheets("Лист_1").Cells(n, 4).Value

Next n

Next i

End Sub
Josser вне форума Ответить с цитированием
Старый 20.07.2009, 21:25   #4
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Дело не в коде, здесь помогут всем, но для начала неплохо попользоваться поиском:http://programmersforum.ru/showthrea...ED%E5%ED%E8%E5
pivas вне форума Ответить с цитированием
Старый 20.07.2009, 21:58   #5
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от pivas Посмотреть сообщение
Дело не в коде, здесь помогут всем, но для начала неплохо попользоваться поиском:http://programmersforum.ru/showthrea...ED%E5%ED%E8%E5
Да я все понимаю, про то, что прежде, чем спросить, нужно поискать. и я даже кажется натыкался на эту ссылку днем раньше. Но днем раньше я бы не написал даже тот код, который выложил. Просто последнее, что я помню, это бейсик в школе 10 лет назад

Спасибо за ссылку
Josser вне форума Ответить с цитированием
Старый 21.07.2009, 04:43   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Но в Вашем файле во 2-м и 3-м листах нет столбцов с артикулами?!
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.07.2009, 06:29   #7
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Но в Вашем файле во 2-м и 3-м листах нет столбцов с артикулами?!
Да, их нет, так как это прайс листы конкурентов, и искать свой "Артикул" приходится в названии. Если бы в них были артикулы, траблов бы никаких не было бы
Josser вне форума Ответить с цитированием
Старый 21.07.2009, 08:14   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Да, их нет, так как это прайс листы конкурентов, и искать свой "Артикул" приходится в названии
Ясно. Просто у Вас, почему-то, ищется подстрока содержащая название (столбцы "A" листов 2 и 3) в строке с артикулами (столбец "A" листа 1). Вот это и странно.
Тогда вопрос, как искать? Т.е. какую часть строки из прайсов нужно найти в названиях листа 1, чтобы однозначно принять решение, что это одно и то же? Записи сделаны по разному ("Картридж" -> "К-ж", через ",' -> через "/" и т.д.). Может быть достаточно совпадения по 2-му слову?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.07.2009, 09:38   #9
Josser
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Ясно. Просто у Вас, почему-то, ищется подстрока содержащая название (столбцы "A" листов 2 и 3) в строке с артикулами (столбец "A" листа 1). Вот это и странно.
Тогда вопрос, как искать? Т.е. какую часть строки из прайсов нужно найти в названиях листа 1, чтобы однозначно принять решение, что это одно и то же? Записи сделаны по разному ("Картридж" -> "К-ж", через ",' -> через "/" и т.д.). Может быть достаточно совпадения по 2-му слову?
"Артикул" содержится в названии продуктов конкурентов и поиск производится именно по нему. Есть правда небольшие недочеты: например когда Артикулы похожи Q2612A, Q2612AD
Josser вне форума Ответить с цитированием
Старый 21.07.2009, 11:09   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Запустите макрос "Main". Что не так?
Вложения
Тип файла: rar Сравнение цен_2.rar (19.7 Кб, 50 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В книге защищен каждый лист. Как быстро снять защиту со всех листов, а потом ее поставить опять? Катик7 Microsoft Office Excel 13 28.04.2011 16:02
копирование листов из закрытых книг mephist Microsoft Office Excel 4 10.07.2009 17:18
сбор значений с листов в один Lyova Microsoft Office Excel 5 21.01.2009 16:42
Вставка значений из разных листов AntiZero Microsoft Office Excel 2 16.11.2007 18:27