Страницы: 1
RSS
Прошу помочь упростить макрос на удаление строк
 
Добрый день!!! Уважаемые Знатоки Excel!  
 
Прошу Вашей помощи в оптимизации макроса, удаляющего все строки не удовлетворяющие условию.    
Условие - номер заявки.    
Диапазон - указан в макросе.    
 
См. файл.    
 
С уважением,
 
Что если сделать динамический диапазон и вписать его вместо "C2:C100"?
 
{quote}{login=}{date=30.11.2010 12:44}{thema=}{post}Что если сделать динамический диапазон и вписать его вместо "C2:C100"?{/post}{/quote}  
 
Добрый день Вам! :)  
 
Да, можно сделать :)
 
{quote}{login=}{date=30.11.2010 12:44}{thema=}{post}Что если сделать динамический диапазон и вписать его вместо "C2:C100"?{/post}{/quote}  
 
Думаю можно в первое условие добавить Case Is = "":Exit Sub  
 
если конечно эти условия останутся :))
 
Вариант чуть проще:  
 
Sub test()  
   Range("C2:C100").ColumnDifferences(ActiveCell).EntireRow.Delete  
End Sub  
 
 
Выделите ячейку с номером заказа в столбце ЗАКАЗ, и нажмите кнопочку:  
http://excelvba.ru/XL_Files/Sample__30-11-2010__14-56-26.zip
 
{quote}{login=EducatedFool}{date=30.11.2010 12:56}{thema=}{post}Вариант чуть проще:  
 
Sub test()  
   Range("C2:C100").ColumnDifferences(ActiveCell).EntireRow.Delete  
End Sub  
 
 
Выделите ячейку с номером заказа в столбце ЗАКАЗ, и нажмите кнопочку:  
http://excelvba.ru/XL_Files/Sample__30-11-2010__14-56-26.zip{/post}{/quote}  
 
 
Добрый день! EducatedFool!!!  
 
Ваш вариант просто супер! Но возможно ли условие не выделять, а позволить отобразить в другом месте?    
 
С уважением,
 
Может я задачу нечётко выразил? ...
 
Sub del()  
Dim Target As Range  
Application.ScreenUpdating = False  
For Each Target In Range("C2:C100")  
   If Target = Range("F1") Then  
      Target.Select  
      Range("C2:C100").ColumnDifferences(Selection).EntireRow.Delete  
      Target.Offset(, -2) = Target.Row - 1  
   End If  
Next  
Application.ScreenUpdating = False  
End Sub
 
{quote}{login=RAN}{date=30.11.2010 02:22}{thema=}{post}Sub del()  
Dim Target As Range  
Application.ScreenUpdating = False  
For Each Target In Range("C2:C100")  
   If Target = Range("F1") Then  
      Target.Select  
      Range("C2:C100").ColumnDifferences(Selection).EntireRow.Delete  
      Target.Offset(, -2) = Target.Row - 1  
   End If  
Next  
Application.ScreenUpdating = False  
End Sub{/post}{/quote}  
 
Благодарю RAN! :)  
Всё прекрасно работает!  
 
С уважением,
 
Ошибка. В предпоследней строке - true
 
{quote}{login=RAN}{date=30.11.2010 02:39}{thema=}{post}Ошибка. В предпоследней строке - true{/post}{/quote}  
 
Хорошо!    
 
С уважением,
Страницы: 1
Читают тему
Наверх
Loading...