У меня был вопрос, касающийся двух встроенных функций VBA .Match и .Intersect. В настоящее время у меня есть 2 одномерных массива, которые я хочу объединить в новый массив. Я понимаю, что ранее задавал вопрос о подходе к проблеме, но этот вопрос относится к тому, какой метод будет лучше. Сможет ли один способ консолидировать информацию в новый массив быстрее, чем другой? и является ли один метод более надежным, чем другой?
VBA:: метод пересечения и сопоставления
Ответы (3)
Из справки Excel
Справочник по Excel для разработчиков
Application.Intersect Method
Возвращает объект Range, представляющий прямоугольное пересечение двух или более диапазонов.
Массивы не являются диапазонами, поэтому интерсет не применим к вашему вопросу, как указано.
Более подробное объяснение того, что вы пытаетесь сделать, и в какой форме находятся ваши необработанные данные, позволит дать лучший совет.
Если вы объединяете два массива в vba, то функции .Match
и .Intersect
ведут себя по-разному, потому что вы не сможете объединить с функцией Match
, вы сможете только чтобы найти значение.
Следовательно, я бы сказал, используйте метод intersect.
Если вам нужен более точный ответ, сообщите нам, что вы хотите делать с вашими массивами, с примерами и кодом, который вы уже создали.
С уважением,
Максимум
Intersect — это метод нахождения пересечения одного или нескольких диапазонов: он не работает с массивами. Он возвращает диапазон подмножества, который является пересечением аргументов диапазона.
Если ваши массивы не отсортированы, вероятно, было бы более эффективно просто сравнивать массивы в цикле, чем использовать .MATCH