|
|
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите пожалуйста. Похожие темы были, но немного другие. Есть 2 таблицы, необходимо сделать сравнения значений в опр. столбцах, но сравнивать так, что бы при обнаружении одинаковых ячеек, опр. диапазон строки этой ячейки копировался в другую таблицу, в ту строку, где находится такая же ячейка. т.е. а1 в т.1. совпала с в3 в т.2 --> диапазон с3-е3 должен копироваться в диапазон с1-е1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 15:35 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
MaxMax2Добрый день. Помогите пожалуйста. Похожие темы были, но немного другие. Есть 2 таблицы, необходимо сделать сравнения значений в опр. столбцах, но сравнивать так, что бы при обнаружении одинаковых ячеек, опр. диапазон строки этой ячейки копировался в другую таблицу, в ту строку, где находится такая же ячейка. т.е. а1 в т.1. совпала с в3 в т.2 --> диапазон с3-е3 должен копироваться в диапазон с1-е1 Пример!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 15:46 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
А вам это макросом надо? Или через функции в ячейках? Делал что-то похожее давно через функции, можете небольшой пример дать, что имеем и что хотелось бы увидеть в итоге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 15:47 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
Sub max() W1 = ActiveWorkbook.Name l1 = ActiveSheet.Name Workbooks.Open ("C:\distrib\rh_macros\êíèãà2.xls") W2 = ActiveWorkbook.Name l2 = ActiveSheet.Name For i = 1 To 100 If Workbooks(W1).Worksheets(l1).Cells(i, 1) <> Workbooks(W2).Worksheets(l2).Cells(i, 2) Then Workbooks(W1).Worksheets(l1).Range("k" & i) = Workbooks(W2).Worksheets(l2).Range("c" & i) End If Next Workbooks(W2).Close SaveChanges:=False End Sub Вот. Но здесь он просто их сравнивает и потом ставит в ячейку "к" в те строки где они были в w2, а мне нужно, чтоб копировались в первый лист именно в те строки, где есть схожие ячейки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 16:06 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
таб.1 а1:1 а2:2 а3:3 таб.2 в1:3 с1:ффф d1:ддд в2:2 с2:ыыы d2:жжж в3:1 Нужно, чтоб с1 и d1 скопировались в третью строку (т.к. тройка у нас совпала с а3) а он их вставляет в первую таб.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 16:14 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
проще говоря как написать чтоб он сравнивал с диапазоном в1:в50 во второй книге, а не с Workbooks(W2).Worksheets(l2).Cells(i, 2) ? думаю это должно помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 16:23 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
Делается это добавлением дополнительного поля, в котором значения в ячейках плюсуются как текстовые и по этому стобцу происходит поиск. Так-же можно этот стобец взять, если создавать с разделителями и потом обратно разбить на отдельные ячейки. А так ВПР(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 16:36 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
а1:ц в4:ц с4:ккккккк нужно, чтоб после сравнения а и в, значение с4:(ккккк) скопировалось в е1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 17:04 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
mahoune, был бы пример, я бы точно сказал, а так могу только посоветовать попробовать уже готовый код http://hugo.nxt.ru/CompareFiles.Find.rar Может быть подойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 17:16 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
теперь делаю так: т.1 а1:ц а2:ы а3:ф т.2 в4:ф в5:ц в6:ы For i = 1 To 100 If Workbooks(W1).Worksheets(l1).Range("a" & i) <> Workbooks(W2).Worksheets(l2).Range("b" & i) Then Workbooks(W1).Worksheets(l1).Range("k" & i).Value = 1 ' ставлю единицу просто для примера, чтоб понять. End If Next так у меня к1:к6 ставятся единицы, а мне надо, чтоб только к1:к3 т.к. основная т.1 может переменную завести или еще как-то? помогите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 17:27 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
вот пример: на первом листе 3 ячейки, на втором тоже три + описание, необходимо, чтобы после сравнения столбцов а и в, описание из с,d,е скопировалось в лист1 строки 123(там где совпали значения), грубо говоря тоже в с,d,е ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 17:44 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
MaxMax2, проверил - мой код подходит: Файл - приёмник: C:\temp\primer.xls Файл - источник: C:\temp\primer.xls Столбцы сравнения в приёмнике: a Столбцы сравнения в источнике: b Лист - приёмник (№): 1 Лист - источник (№): 2 Столбцы - приёмники: b,c,d Столбцы - источники: c,d,e ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:04 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
MaxMax2вот пример: на первом листе 3 ячейки, на втором тоже три + описание, необходимо, чтобы после сравнения столбцов а и в, описание из с,d,е скопировалось в лист1 строки 123(там где совпали значения), грубо говоря тоже в с,d,е Может быть такое покатит??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:04 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
вставил модуль. а как сделать, чтоб копировалось именно в те строки на листе1, где находятся эти одинаковые ячейки(1,2,3в данном случае)??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:26 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
MaxMax2вставил модуль. а как сделать, чтоб копировалось именно в те строки на листе1, где находятся эти одинаковые ячейки(1,2,3в данном случае)??? Честно не могу понять зачем вам макрос??? Если есть формула??? И при это не тяжелая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:42 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
просто это пример, потом вставлю и подгоню его. У меня 2 больших таблицы в разных документах, там куча всего будет переноситься и копироваться. Застопорился здесь, подтолкните пожалуйста. Наверное необходимо завести еще одну переменную, чтоб разделить значения i для двух листов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:46 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
Вообще неправильно. начал проверять и удалять некоторые значения, все равно копирует строки со 2 листа на первый( Нужен нормальный цикл с переменными. а как его написать я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 18:57 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
MaxMax2, чем мой код не подходит? Или даже не смотрели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 20:34 |
|
||
|
сравнение ячеек в цикле
|
|||
|---|---|---|---|
|
#18+
И ещё - если у Вас 2 больших таблицы в разных документах, там куча всего будет переноситься и копироваться, то два цикла будут очень долго работать. Мой код тоже не спринтер, но цикл там один + поиск, так что побыстрее будет. Хотя если вам надо именно копировать, то тогда мой код не подходит, он лишь копирует значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 20:54 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36586241&tid=2178221]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 522ms |

| 0 / 0 |
