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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2017, 06:45   #11
FoxRiver
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Так лист Расхождение есть или его надо создать, если найдены несовпадающие суммы?
Если лист уже есть - стереть имеющуюся информацию или дописать в конец?
Вообще, задача решается с помощью ВПР и автофильтра (или расширенного фильтра).
Лист Расхождения есть. Этот лист изначально будет пустым. Но при запуске макроса, любые найденные расхождения должны дописываться построчно (если в первой строке уже есть данные, то запись идет на вторую строку итд).
За вложенный пример огромное спасибо! Если можете помогите плз сделать эту реализацию макросом..
FoxRiver вне форума Ответить с цитированием
Старый 27.12.2017, 13:20   #12
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте
Код:
Sub Fox()
Dim x, d As Range
  On Error Resume Next
  Worksheets("Расхождение").Activate
  If Err Then Stop 'Не найден лист Расхождение
  On Error GoTo 0
  Set d = Cells(Rows.Count, "A").End(xlUp).Resize(, 3)
  If d(1) <> "" Then Set d = d.Offset(1)
  Application.ScreenUpdating = False
  With Worksheets(1)
    .Rows(1).Insert
    .Range("A1:C1") = Split("a b c")
    .Range("C2:C" & .Cells(.Rows.Count, "A").End(xlUp).Row).Formula = _
      "=VLOOKUP(A2,'" & Worksheets(2).Name & "'!A:B,2,)"
    .Range("E2").Formula = "=C2<>B2"
    .Range("A1:C1").Copy d
    .Range("A:C").AdvancedFilter xlFilterCopy, .Range("E1:E2"), d, False
    .Rows(1).Delete
    .Range("C:E").Delete
  End With
  x = d.Row - Cells(Rows.Count, "A").End(xlUp).Row
  d.EntireRow.Delete
  Application.ScreenUpdating = True
  If x = 0 Then MsgBox "Расхождений не найдено", vbInformation
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 29.12.2017, 16:05   #13
FoxRiver
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 35
По умолчанию

Казанский

Спасибо большое!
FoxRiver вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений artem19051993 Microsoft Office Excel 18 11.12.2015 16:14
Поиск совпадений в диапазоне и поставление значения соседней от совпавшей ячейки, Поиск совпадений в диапазоне ANshag Microsoft Office Excel 3 08.09.2015 16:35
Поиск совпадений Серёга0629 Microsoft Office Excel 9 29.08.2011 09:22
Поиск совпадений Claster Общие вопросы Delphi 4 22.06.2011 17:34
Поиск совпадений в БД _PROGRAMM_ PHP 6 21.05.2010 13:53