Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: For each для автофильтра
     
    
Добавлено: 29.08.08 11:29
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     KiZ
 KiZ
      
       
  
Приветствую. Возник вопросик.
 
    
Вторая колонка в Экселе стоит с автофильтром больше 1. т.о. Если сделать Range.Select по первой колонке , то она должна выделить только те, которые попали в автофильтр.
Потом делаем так:
         If c.Value = "1234" Then
         Razdor = Razdor + 1
         n_String = c.Row
         End If
        Next
Но она суммирует Razdor, не только те, которые в автофильтре, но и те, которые не попали в нее. Как мне суммировать с учетом автофильтра?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 6
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: mc-black
 mc-black


ICQ: 308-534-060 
Вопросов: 20
Ответов: 1860
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  29.08.08 15:55
       
    
       
  
1. Выделяешь диапазон.
 
    
2. Ставишь автофильтр.
3. Делаешь Выделить видимые ячейки.
4. Парсишь строку с полученным диапазоном выделенных ячеек.
Эта тема ранее поднималась на форуме. Более быстрого, либо способа, а также встроенного метода тогда не было найдено. Сделай поиск по форуму из внешнего поисковика.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: KiZ
 KiZ







Вопросов: 27
Ответов: 68
      
 Профиль |  | #2
       
Добавлено:  29.08.08 17:52
       
    
       
  
Что значит парсишь? Поиском чтоли?  а как там проверку сделать, если вдруг не найдет. в моем случае, если Razdor 0, то не нашла и все ок...
 
    
блин, но не хочет искать именно по выделеным ячейкам( ищет по столбцу(
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: mc-black
 mc-black


ICQ: 308-534-060 
Вопросов: 20
Ответов: 1860
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  02.09.08 09:14
       
    
       
  
Парсишь, это значит обрабатываешь строку диапазона, например "E3;E5:E9;E21:E22;E25" таким алгоритмом, чтобы получать номера строк, отображенных автофильтром, а в данном случае это будут 3,5,6,7,8,9,21,22,25 В этом и заключается твоя задача. Лучше хорошенько покопаться в поиске, т.к. там есть ГОТОВОЕ и самое быстрое по выполнению решение твоего вопроса.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: mc-black
 mc-black


ICQ: 308-534-060 
Вопросов: 20
Ответов: 1860
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  02.09.08 09:36
       
    
       
  
Да, если скорость не имеет значения, то просто на каждом шаге проверяешь ячейку: видимая она или нет по свойству .Visible (True/False) и обрабатываешь только видимые ячейки.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: KiZ
 KiZ







Вопросов: 27
Ответов: 68
      
 Профиль |  | #5
       
Добавлено:  02.09.08 11:12
       
    
       
  
+1 за второй ответ. строчек всего 100. там быстро будет. спасибо.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: mc-black
 mc-black


ICQ: 308-534-060 
Вопросов: 20
Ответов: 1860
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  04.09.08 14:34
       
    
       
  
Пустяки, не за что  
    