Страницы: 1
RSS
Как выделить ячейки с отступом
 
Столкнулся с проблемой: необходимо различить/выделить ячейки с различным отступом. Ни кто не сталкивался?
 
If Range("A1").IndentLevel > 0 Then  
  Range("A1").Select  
End If  
 
Ну и всё это в цикле :-)
 
В 2007 (и вроде бы в 2003?) можно указать формат поиска, в т.ч. отступ, выделить все.
 
{quote}{login=Казанский}{date=27.04.2011 09:54}{thema=}{post}В 2007 (и вроде бы в 2003?) можно указать формат поиска, в т.ч. отступ, выделить все.{/post}{/quote}  
 
Не подскажете подробнее? перерыл всю справку по эксель (2003) не смог найти
 
Такая штука есть? Если нет - тады ой. Я работаю с 2000 и 2007, в 2000 этого нет:
 
{quote}{login=Казанский}{date=27.04.2011 10:37}{thema=}{post}Такая штука есть? Если нет - тады ой. Я работаю с 2000 и 2007, в 2000 этого нет:{/post}{/quote}  
 
сорри, 2007
 
{quote}{login=NullUzer}{date=27.04.2011 09:51}{thema=Re: Как выделить ячейки с отступом}{post}If Range("A1").IndentLevel > 0 Then  
  Range("A1").Select  
End If  
 
Ну и всё это в цикле :-){/post}{/quote}  
 
cпасибо, но так глубоко эксель не знаю. хотелось бы какими-то стандартными функциями.
 
Sub DifferentiateCellsWithIndentation()  
 
Dim rng As Range, uRange As Range, sRange As String  
Set uRange = ActiveSheet.UsedRange  
 
For Each rng In uRange  
If rng.IndentLevel > 0 Then  
sRange = sRange & rng.Address & ","  
End If  
Next  
 
ActiveSheet.Range(Left(sRange, Len(sRange) - 1)).Select  
End Sub
 
Если ячеек будет много и строка sRange станет длиннее 256 символов, будет ошибка.  
Можно так, хотя при большом числе ячеек будет тормозить:  
 
Sub joker()  
Dim r As Range, c As Range  
For Each c In ActiveSheet.UsedRange  
   If c.IndentLevel > 0 Then  
       If r Is Nothing Then Set r = c Else Set r = Union(r, c)  
   End If  
Next  
If Not r Is Nothing Then r.Select  
End Sub
Страницы: 1
Читают тему
Наверх