Страницы: 1
RSS
как правильно использовать End(xlDown)
 
Дико извиняюсь, но уже который день маюсь, никак не могу понять принцип, по сему обращаюсь с вопросом.  
Имеем следующую строку:  
ActiveSheet.Range("$A$1:$N$2000").RemoveDuplicates Columns:=13, Header:=xlNo  
Как правильно написать, чтобы он автоматом определял последний заполненный столбец (в первую очередь) и последнюю заполненную строку и на основании этого выделял диапазон, из которого потом и удаляются дубли.  
Спасибо.
 
-------------------------------------------  
With ActiveSheet.UsedRange    
    iRow = .Row + .Rows.Count - 1    
    iClm = .Column + .Columns.Count - 1    
End With  
-------------------------------------------  
или  
-------------------------------------------  
With Worksheets("Лист1").UsedRange    
    iRow = .Row + .Rows.Count - 1    
    iClm = .Column + .Columns.Count - 1    
End With  
-------------------------------------------
<FONT COLOR="CadetBlue">
 
или так:  
Sub test()  
   Dim maxC As Integer  
   Dim maxR As Long  
   maxC = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column  
   maxR = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row  
   ActiveSheet.Range("A1:" & ActiveSheet.Cells(maxR, maxC).Address).Select  
End Sub
 
webley, первый раз с Вами не согласен :)  
У Автора неизветсно какой столбец содержит последнию строку, что касается и столбца.  
 
Поэтому лучше уж так  
-------------------------------------------  
ActiveSheet.UsedRange.RemoveDuplicates Columns:=13, Header:=xlNo  
-------------------------------------------  
 
или  
-------------------------------------------  
Dim iRow As Long,iClm As Long  
With ActiveSheet.Range("$A$1:$N$2000")  
iRow = .Row + .Rows.Count - 1    
iClm = .Column + .Columns.Count - 1    
End With  
ActiveSheet.Range(Cells(1, 1),Cells(iRow, iClm)).RemoveDuplicates Columns:=13, Header:=xlNo  
-------------------------------------------
<FONT COLOR="CadetBlue">
 
Да, а как правильно использовать "End(xlDown)", Вы абсолютно правильно показали, извините ;)
<FONT COLOR="CadetBlue">
 
да сам уже про это думал...  
подгонял под название темы :) а вдруг все ячейки обязательны для заполнения - тогда мой способ тоже будет работать.  
 
Но согласен, самый классный вариант вот этот:  
ActiveSheet.UsedRange.RemoveDuplicates Columns:=13, Header:=xlNo
 
тестируб предложенные варианты))) как получится - отпишусь)
 
Конечно, будет, я в Ваших примерах не сомневаюсь ;)
<FONT COLOR="CadetBlue">
 
ActiveSheet.UsedRange.RemoveDuplicates Columns:=13, Header:=xlNo  
ОТличный вариант.  
Подошел как нельзя лучше, спасибо
Страницы: 1
Читают тему
Наверх