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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 13:36   #11
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ну, раз уж делал...
Вложения
Тип файла: rar Лист Microsoft Excel1.rar (15.8 Кб, 19 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 04.02.2011, 14:02   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Хорошо, тогда без формул и форматирования (ну разве что 2 нуля форматом колонки добавьте).
Замените код в моём примере на этот:
Код:
Option Explicit

Sub CopyCheck()
Dim sh1 As Object, sh2 As Object, sh3 As Object
Dim x As Range
Dim iLastRow  As Long, i As Long, ii As Long

Set sh1 = ThisWorkbook.Sheets(1)
Set sh2 = ThisWorkbook.Sheets(2)
Set sh3 = ThisWorkbook.Sheets(3)

iLastRow = sh2.Cells(Rows.Count, 1).End(xlUp).Row

Application.ScreenUpdating = False

For i = 1 To iLastRow
Set x = sh1.Columns(1).Find(sh2.Cells(i, 1).Value, , xlValues, xlWhole)
If Not x Is Nothing Then
ii = ii + 1
sh3.Cells(ii, 1) = sh1.Cells(x.Row, 1).Value
sh3.Cells(ii, 2) = sh1.Cells(x.Row, 2).Value
sh3.Cells(ii, 3) = sh2.Cells(i, 1).Value
sh3.Cells(ii, 4) = sh2.Cells(i, 2).Value
sh3.Cells(ii, 5) = Abs(sh2.Cells(i, 2).Value - sh1.Cells(x.Row, 2).Value)
            If sh2.Cells(i, 2).Value < sh1.Cells(x.Row, 2).Value Then sh3.Cells(ii, 5).Font.ColorIndex = 3
            If sh2.Cells(i, 2).Value > sh1.Cells(x.Row, 2).Value Then sh3.Cells(ii, 5).Font.ColorIndex = 10
            If sh2.Cells(i, 2).Value = sh1.Cells(x.Row, 2).Value Then sh3.Cells(ii, 5).Font.ColorIndex = 0
End If
Next

Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 04.02.2011 в 14:35.
Hugo121 вне форума Ответить с цитированием
Старый 04.02.2011, 14:14   #13
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Игорь, объявление переменных...:-)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 04.02.2011, 14:38   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Добавил.
По скорости не оптимизировано. Если данных много, и оставить этот подход с поиском, то я бы сравнения и подсчёты делал на массивах, как и выгрузку на лист из массива. А покраску сделал форматом колонки, вручную или в коде.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 07.02.2011, 22:30   #15
bima67
 
Регистрация: 12.01.2011
Сообщений: 4
По умолчанию

Круто. Большое спасибо.
Еще вопрос. Как научится макросы писать? В инете поискал литературу, но похожей по простоте обучения, как к примеру на PHP, не нашел.
bima67 вне форума Ответить с цитированием
Старый 08.02.2011, 00:57   #16
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от bima67 Посмотреть сообщение
Круто. Большое спасибо.
Еще вопрос. Как научится макросы писать? В инете поискал литературу, но похожей по простоте обучения, как к примеру на PHP, не нашел.
ну коль и меня вспоминали
а литературу тут посмотрите
http://www.planetaexcel.ru/forum.php?thread_id=8763
Вложения
Тип файла: zip CopyCheck.zip (21.5 Кб, 26 просмотров)
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 09.10.2014, 07:41   #17
chelovek4030
Новичок
Джуниор
 
Регистрация: 07.10.2014
Сообщений: 1
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение. Откройте оба файла и запустите макрос "Main".
Напомню это для задачи :"В графе 2 первой книги ячейка проходит по графе 1 второй книги и если находит соответствие то пишет в графу пять первой книги числовое значение из графы 2 второй книги."

А где взять код указанного макроса "Main"?
chelovek4030 вне форума Ответить с цитированием
Старый 09.10.2014, 07:54   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А где взять код указанного макроса "Main"?
В программном модуле "Module1" в файле "Книга111.xls" из поста №4.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух столбцов в разных книгах LAnLorD Microsoft Office Excel 132 17.05.2022 08:16
Обмен двух столбцов на листе местами Decker Microsoft Office Excel 3 14.02.2010 14:31
Прибавление данніх из двух столбцов gavrylyuk Microsoft Office Excel 3 01.08.2008 11:40
Отображение в форме и таблице двух столбцов подстановок smoky Microsoft Office Access 5 01.07.2008 09:27
Как извлечь из двух столбцов несовпадающие строки Shavminator Microsoft Office Excel 4 28.12.2007 12:23