VBA:: метод пересечения и сопоставления

У меня был вопрос, касающийся двух встроенных функций VBA .Match и .Intersect. В настоящее время у меня есть 2 одномерных массива, которые я хочу объединить в новый массив. Я понимаю, что ранее задавал вопрос о подходе к проблеме, но этот вопрос относится к тому, какой метод будет лучше. Сможет ли один способ консолидировать информацию в новый массив быстрее, чем другой? и является ли один метод более надежным, чем другой?


person Community    schedule 28.06.2011    source источник
comment
между использованием соответствия или пересечения   -  person    schedule 28.06.2011


Ответы (3)


Из справки Excel

Справочник по Excel для разработчиков

Application.Intersect Method
Возвращает объект Range, представляющий прямоугольное пересечение двух или более диапазонов.

Массивы не являются диапазонами, поэтому интерсет не применим к вашему вопросу, как указано.

Более подробное объяснение того, что вы пытаетесь сделать, и в какой форме находятся ваши необработанные данные, позволит дать лучший совет.

person chris neilsen    schedule 28.06.2011

Если вы объединяете два массива в vba, то функции .Match и .Intersect ведут себя по-разному, потому что вы не сможете объединить с функцией Match, вы сможете только чтобы найти значение.

Следовательно, я бы сказал, используйте метод intersect.

Если вам нужен более точный ответ, сообщите нам, что вы хотите делать с вашими массивами, с примерами и кодом, который вы уже создали.

С уважением,

Максимум

person JMax    schedule 28.06.2011
comment
@Max Я хочу извлечь значения, которые дублируются в массивах, и создать новый массив, содержащий повторяющиеся значения. Я создал функцию, используя .Match, но у меня возникли некоторые проблемы с ней. Я создал новый вопрос здесь: stackoverflow.com/questions/6504018/vba-subscript-error - person ; 28.06.2011

Intersect — это метод нахождения пересечения одного или нескольких диапазонов: он не работает с массивами. Он возвращает диапазон подмножества, который является пересечением аргументов диапазона.
Если ваши массивы не отсортированы, вероятно, было бы более эффективно просто сравнивать массивы в цикле, чем использовать .MATCH

person Charles Williams    schedule 28.06.2011