powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос VBA сравнение значений ячеек в Excel
12 сообщений из 12, страница 1 из 1
Макрос VBA сравнение значений ячеек в Excel
    #37272772
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Есть файл Excel с табличкой, значения допустим, в А1 =8, а2 =9,А3=15,А4=25.... А524=8,... А 600 = 15 и т.д.
Подскажите текст макроса, который бы отобрал НЕПОВТОРЯЮЩИЕСЯ значения колонки А и записал бы их в В. Например, В1=8,В2=9 и т.д.
Спасибо!
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272777
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jimy,

Data -> Filter -> Advanced filter -> Unique records only
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272782
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но нужен именно код, чтобы вставить его в книгу - бухгалтера не будут разбираться с фильтрами...
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272815
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jimy,

бухгалтеров нужно учить
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272819
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Только им (бухгалтерам) за 60 и максимум на что они согласны - это нажать готовую кнопочку в Excel. На большее никак . А поменять бухгалтеров - увы, не в моей компетенции...
p.s. Помогите с кнопочкой
Спасибо.
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272825
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jimy,

Вариант №1: программно взять уникальные значения из фильтра.
Код: plaintext
1.
2.
Sub Макрос1()
    Range("A1:A600").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True
End Sub
Вариант №2: подключиться к таблице Экселя с помощью ADO и получить набор уникальных данных с помощью инструкции SQL SELECT с предикатом DISTINCT.
Справка Microsoft® Jet DISTINCT Исключает записи, которые содержат повторяющиеся значения в выбранных полях. Чтобы запись была включена в результат выполнения запроса, значения в каждом поле, включенном в инструкцию SELECT, должны быть уникальными. Например, в таблице «Сотрудники» есть однофамильцы. Если две записи содержат значение «Иванов» в поле «Фамилия», то следующая инструкция SQL возвратит только одну из них:
SELECT DISTINCT
Фамилия
FROM Сотрудники;

Если опустить предикат DISTINCT, этот запрос возвратит обе записи для фамилии Иванов.

Если предложение SELECT содержит более одного поля, то для включения записи в результат выполнения запроса необходимо, чтобы совокупность значений во всех этих полях была уникальной.

Результат выполнения инструкции SQL, содержащей предикат DISTINCT, является необновляемым и не отражает последующие изменения, внесенные другими пользователями.
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272828
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, только что проверил последний пост. Спасибо. Но получается следующее
Было:
А1 = 1
А2=1
А3=1
А4=2
А5=3

Стало:
в1=1
в2=1
в3=2
в4=3
Есть повторяющиеся. Может, что то подправить?
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272829
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jimy,

Почитайте эту статью до конца.
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272833
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JimyВот, только что проверил последний пост. Спасибо. Но получается следующее
Было:
А1 = 1
А2=1
А3=1
А4=2
А5=3

Стало:
в1=1
в2=1
в3=2
в4=3
Есть повторяющиеся. Может, что то подправить?
Действительно есть повторы, кроме в1=1 и в2=1?
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272835
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо!!! Вроде получается!
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272838
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristJimy,

Почитайте эту статью до конца.
Посмотрел сейчас Ваш пример с кодом, может, конечно, я сегодня уже много пива выпил или слишком много строк г**нокода на VBA настрочил, но мне кажется, что решение с помощью SELECT DISTINCT концептуально более правильное.
...
Рейтинг: 0 / 0
Макрос VBA сравнение значений ячеек в Excel
    #37272846
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик,

SELECT DISTINCT ведь может достать уникальные только одного поля, нет? Или я что-то путаю? Код же в статье позволяет извлечь уникальные из диапазона любой размерности, незвисимо от кол-ва полей. Даже если надо будет извлечь только уникальные, расположенные в двух столбцах. А DISTINCT в таком случае вернет только уникальные по строке.
Так что здесь концепция правильности напрямую зависит от задачи.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос VBA сравнение значений ячеек в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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