powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор и перенос уникальных значений с проверкой на неповторяемость
3 сообщений из 3, страница 1 из 1
Выбор и перенос уникальных значений с проверкой на неповторяемость
    #38438921
grano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех.

Прошу помощи с написанием макроса, выбирающего новые уникальные значения из одного листа, проверяющего их на неповторяемость в другом листе и записывающего уникальные (Excel 2007).

В книге имеются два листа.

В первом листе (в прилагаемом файле лист "Все_клиенты") содержится список всех клиентов (номер (UID) и наименование) на дату создания файла.

Во второй лист (в прилагаемом файле лист "Клиенты_на_рассмотрении") периодически заносятся операции, совершенные с
клиентами за определенный период. При этом могут появляться как клиенты, имеющиеся в первом листе, так и новые клиенты. Клиенты во втором листе могут повторяться неоднократно.

Задача - по мере необходимости выбирать уникальные новые записи (UID и наименование клиента) из второго листа и переносить их в первый.

Найденный и модифицированный макрос (спасибо автору EducatedFool) умеет выбирать новые записи, но не умеет проверять их на повторяемость с уже имеющимися данными на первом листе. Также он переносит новые записи на первый лист, начиная с одной фиксированной позиции, тогда как необходимо заносить их с первой пустой позиции.

Спасибо.
...
Рейтинг: 0 / 0
Выбор и перенос уникальных значений с проверкой на неповторяемость
    #38440448
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Выбор и перенос уникальных значений с проверкой на неповторяемость
    #38441145
grano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предложенное решение:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub ertert()
Dim x, i&, j&
With Sheets("Все_клиенты")
    x = .Range("A1:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 1 To UBound(x)
        .Item(x(i, 1)) = Empty
    Next i
    With Sheets("Клиенты_на_рассмотрении")
        x = .Range("A1:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
    End With
    For i = 1 To UBound(x)
        If Not .Exists(x(i, 1)) Then
            .Item(x(i, 1)) = Empty
            j = j + 1: x(j, 1) = x(i, 1): x(j, 2) = x(i, 2)
        End If
    Next i
End With
With Sheets("Все_клиенты")
    If j > 0 Then .Cells(Rows.Count, 1).End(xlUp)(2).Resize(j, 2).Value = x
    .Activate
End With
End Sub


Спасибо автору nilem
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор и перенос уникальных значений с проверкой на неповторяемость
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]