Возвращение уникальных предметов с помощью VBA в Microsoft Excel
В этой статье мы создадим макрос для извлечения уникальных значений из определенного диапазона.
Исходные данные для этого примера состоят из повторяющихся записей названий стран в диапазоне A7: A21.
Мы создали макрос «FindUniqueValues» для извлечения уникальных значений из определенного диапазона. Этот макрос можно запустить, нажав кнопку «Отправить». Перед тем, как нажать кнопку «Отправить», мы должны указать адрес диапазона, который содержит повторяющиеся данные в ячейке H9, и адрес места назначения, в котором должны появиться выходные данные.
Логическое объяснение
Макрос «FindUniqueValues» принимает в качестве входных параметров два объекта диапазона.
Первый параметр определяет диапазон, который содержит повторяющиеся данные, а второй параметр определяет позицию начальной ячейки, которая будет содержать выходные данные. Этот макрос не может быть вызван напрямую, так как мы должны указать параметры, поэтому мы создали второй макрос «MacroRunning» для его вызова.
Макрос «MacroRunning» вызывает макрос «FindUniqueValues» с параметром, вводимым пользователем.
Объяснение кода
SourceRange.AdvancedFilter Action: = xlFilterCopy, _ CopyToRange: = TargetCell, Unique: = True Метод AdvancedFilter объекта Range используется для фильтрации или копирования данных из диапазона на основе определенных критериев. Чтобы скопировать только уникальные значения, мы должны установить для параметра Unique AdvancedFilter значение True.
Пожалуйста, введите код ниже
Option Explicit Sub FindUniqueValues(SourceRange As Range, TargetCell As Range) 'Using advance filter for extacting unique items in the source range SourceRange.AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=TargetCell, Unique:=True End Sub Sub MacroRunning() 'Calling FindUniqueValues macro Call FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value)) End Sub
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]