2016-02-26 5 views
0

Привет Я пытаюсь сделать столбцы одного листа равными другим, не используя копирование и вставку, думая, что это будет работать быстрее. Затем я пытаюсь удалить повторяющиеся значения в столбцах (столбцах) нового листа. В коде у меня есть работы, но так как данных так много!Скопируйте значения с одного листа на другой и удалите дубликаты?

Dim ws As Worksheet 
Set ws = ThisWorkbook.Sheets("COMP29") 
ws.Columns(15).Copy Destination:=Sheets("TEMPLIST1").Columns(1) 

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
'Remove Duplicates, Sort, and Name Temp Worksheet 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 

Dim LastRow As Long 

'Name 
ActiveSheet.Name = "TEMPLIST1" 

'Remove Duplicates 
With ActiveSheet 
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row 
    .Range("A1:B" & LastRow).RemoveDuplicates Columns:=Array(1, 1), Header:=xlYes 
End With 

Есть ли более эффективный способ достичь этого? С уникальным списком я заполняю ComboBox на DropButtonClick. Спасибо!

ответ

0

Это самый быстрый способ выполнить действие, и он должен быть FAST - я могу только думать, что у вас есть формулы в вашем списке (или ссылки на ваш список), и они замедляют его. Попробуйте отключить автоматические вычисления и посмотрите, улучшит ли это ситуацию (не забудьте снова включить их после удаления дубликатов!)

+0

У меня есть расчет для руководства. Я продолжу рассмотрение. Я не уверен, почему это медленно. Это займет примерно 5-15 секунд, я бы подумал. Я бы хотел, чтобы это была 1-2-секундная задержка. – Chris2015

+0

Единственное другое предложение, о котором я могу думать, это листы («templist»). Range («a1: b» & lastrow) .value = sheets («comp29»). Range («a1: b» & lastrow) .value. Не стоит делать алгоритм для прохождения и проверять дубликаты и копировать каждый новый элемент, поскольку встроенные функции Microsoft всегда будут быстрее. – ninjaRoche

+0

Спасибо. Я использовал значение .value = .value и потратил все! – Chris2015

Смежные вопросы