Привет Я пытаюсь сделать столбцы одного листа равными другим, не используя копирование и вставку, думая, что это будет работать быстрее. Затем я пытаюсь удалить повторяющиеся значения в столбцах (столбцах) нового листа. В коде у меня есть работы, но так как данных так много!Скопируйте значения с одного листа на другой и удалите дубликаты?
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. Спасибо!
У меня есть расчет для руководства. Я продолжу рассмотрение. Я не уверен, почему это медленно. Это займет примерно 5-15 секунд, я бы подумал. Я бы хотел, чтобы это была 1-2-секундная задержка. – Chris2015
Единственное другое предложение, о котором я могу думать, это листы («templist»). Range («a1: b» & lastrow) .value = sheets («comp29»). Range («a1: b» & lastrow) .value. Не стоит делать алгоритм для прохождения и проверять дубликаты и копировать каждый новый элемент, поскольку встроенные функции Microsoft всегда будут быстрее. – ninjaRoche
Спасибо. Я использовал значение .value = .value и потратил все! – Chris2015