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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2014, 10:54   #1
panych
 
Регистрация: 24.09.2014
Сообщений: 8
Радость добавить на третий лист еще одну колонку

этот макрос копирует на третий лист не совпадающие строки 2-ого столбца, а надо чтобы он копировал 2 и 3 столбцы, совпадения искал по второму, но копировал 2 и 3. Помогите, пожалуйста!
Sub сортировка()
Dim temp, temph
Dim source_ As Object, target_ As Object, tocopy_ As Object, x As Range
Dim iFirstAddress$, blank_cell As Range
Dim cc As Range

Set source_ = Sheets(2)
Set target_ = Sheets(1)
Set tocopy_ = Sheets(3)

For Each cc In source_.UsedRange.Columns(2).Cells

temp = cc.Value
temph = source_.Cells(cc.Row, 5).Value

If temp <> "" Then
Set x = target_.Columns(2).Find(temp, LookIn:=xlValues, lookat:=xlPart, MatchCase:=True)

If Not x Is Nothing Then

iFirstAddress = x.Address

Do
Set x = target_.Columns(2).FindNext(x)
If target_.Cells(x.Row, 3).Value <> temph Then
Set blank_cell = tocopy_.Cells(tocopy_.Range("a" & Rows.Count).End(xlUp).Row + 1, 1)
source_.Cells(cc.Row, 2).Copy blank_cell
End If
Loop While Not x Is Nothing And x.Address <> iFirstAddress
Else
Set blank_cell = tocopy_.Cells(tocopy_.Range("a" & Rows.Count).End(xlUp).Row + 1, 1)
source_.Cells(cc.Row, 2).Copy blank_cell
blank_cell.Offset(0, 2).Value = "не найдено"
End If
End If
Next
MsgBox "готово!"
End Sub
panych вне форума Ответить с цитированием
Старый 05.10.2014, 20:15   #2
Ves67
 
Регистрация: 05.10.2014
Сообщений: 7
По умолчанию

попробуйте так
Код:
Sub сортировка()
Dim temp, temph
Dim source_ As Object, target_ As Object, tocopy_ As Object, x As Range
Dim iFirstAddress$
Dim cc As Range
Dim lngEnd_tocopy As Long
Set source_ = Sheets(2)
Set target_ = Sheets(1)
Set tocopy_ = Sheets(3)
lngEnd_tocopy = tocopy_.Range("a" & Rows.Count).End(xlUp).Row
For Each cc In source_.UsedRange.Columns("b").Cells
temp = cc.Value
temph = source_.Range("e" & cc.Row).Value
If temp <> "" Then
Set x = target_.Columns("b").Find(temp, LookIn:=xlValues, lookat:=xlPart, MatchCase:=True)
If Not x Is Nothing Then
iFirstAddress = x.Address
Do
Set x = target_.Columns("b").FindNext(x)
If target_.Range("c" & x.Row).Value <> temph Then
lngEnd_tocopy = lngEnd_tocopy + 1
tocopy_.Range("a" & lngEnd_tocopy) = temp
tocopy_.Range("b" & lngEnd_tocopy) = temph
tocopy_.Range("c" & lngEnd_tocopy) = target_.Range("c" & x.Row).Value
tocopy_.Range("d" & lngEnd_tocopy) = "не найдено"
End If
Loop While x.Address <> iFirstAddress
Else
lngEnd_tocopy = lngEnd_tocopy + 1
tocopy_.Range("a" & lngEnd_tocopy) = temp
tocopy_.Range("c" & lngEnd_tocopy) = "не найдено"
End If
End If
Next
MsgBox "готово!"
End Sub
Ves67 вне форума Ответить с цитированием
Старый 06.10.2014, 14:13   #3
panych
 
Регистрация: 24.09.2014
Сообщений: 8
Радость

работает неправильно, может подскажите как мой доделать, чтобы копировал вместе со значением 2 столбца, еще и значение 3 столбца той же строки.
мой макрос работает. только мне надо добавить копирование значения из 3 столбца, к той ячейке из 2 столбца которая не совпадает.
panych вне форума Ответить с цитированием
Старый 06.10.2014, 14:24   #4
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Попробуйте
Код:
source_.Cells(cc.Row, 2).Copy blank_cell
поменять на
Код:
source_.Cells(cc.Row, 2).Resize(, 2).Copy blank_cell
ЗЫ: Не проверял, файла-то нету.
ShAM66 вне форума Ответить с цитированием
Старый 06.10.2014, 14:46   #5
Ves67
 
Регистрация: 05.10.2014
Сообщений: 7
По умолчанию

а что неправильно работает?
Ves67 вне форума Ответить с цитированием
Старый 06.10.2014, 16:05   #6
panych
 
Регистрация: 24.09.2014
Сообщений: 8
Смех

Sham66 Спасибо!!!!!!!! Работает))
panych вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить колонку в калькуляции mr_zhorik Microsoft Office Access 4 15.11.2012 16:06
Office xp - не могу выделить одну колонку Kreadlling Microsoft Office Word 3 25.05.2011 22:31
Как добавить еще одну GET переменную к заголовку HTML страницы? Лицемер Помощь студентам 0 04.04.2011 12:45
Добавить колонку Turbine БД в Delphi 0 20.03.2011 21:07
добавить колонку для меню Screame HTML и CSS 5 26.11.2010 23:24