Вопрос

Я закодировал сценарий VBA в Excel, который добавляет новые данные в таблицу данных с предыдущей информацией. Прежде чем делать то новые данные копируются в предварительную таблицу данных. Чтобы предотвратить дубликаты, я создаю дополнительную колонку и выполнил vlookup ids. Если идентификатор из новых импортированных данных уже находится в таблице данных со старыми данными, эта строка помечена как дублирована и будет удалена. «Неумядные строки» затем скопированы в финальную таблицу данных, где все данные хранятся.

Сейчас я использую ссылку на столбцу (A: a) в Vlookup, и я не знаю, может быть, это причина, по которой именно поэтому сценарий VBA требуется еще больше ресурсов и времени. Когда я впервые закодировал, я сделал тест без более 4000 строк в оригинальной таблице данных и 4000 строк в импортированных данных. Макрос был сделан через 90 секунд. Прямо сейчас ему нужны более 5 минут, а Datasheet с данными составляет всего 40 000 строк, в то время как новые данные всегда примерно на 4000 строк.

Должен ли я динамически ссылаться на диапазон в vlookup вместо использования a: a или не имеет значения с точки зрения скорости?

Это было полезно?

Решение

Как уже упоминалось в моем комментарии, конечно, это способ выполнить эту задачу, используя VBA, но иногда самое большое решение лучше всего.Я бы рекомендовал добавить все записи 40K каждый раз и использовать функцию «Удалить дубликаты» в ленте «Данные», используя столбец, который удерживает ваше уникальное значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top