Страницы: 1
RSS
Что значит аргумент функции VBA - SpecialCells
 
у Уокенбаха наткнулся на строку  
 
   Set ConstantCells = Selection.SpecialCells(xlConstants, 23)  
 
эта часть макроса выделяет из выбранных ячеек ячейки со значениями.  
 
Вопрос - что значит число 23? справку читал - не понял.
 
спасибо
 
Все правильно - выделяет константы в указанном диапазоне. Второй аргумент значение константы. Если к примеру второй аргумент указать, что либо из этого:  
xlErrors    
xlLogical    
xlNumbers    
xlTextValues  
 
То выделяться будут соответственно ВСЕ ошибки, булевые, числовые или текстовые значения. В вашем случае, полагаю только числовое значение - 23.
 
нет. именно все числовые значения  
 
вот весь код  
 
 
Sub SkipBlanks()  
   On Error Resume Next  
     
'   Обработка констант  
   Set ConstantCells = Selection.SpecialCells(xlConstants, 23)  
   For Each cell In ConstantCells  
      If cell.Value < 0 Then cell.Font.Color = vbRed  
   Next cell  
     
'   Обработка формул  
   Set FormulaCells = Selection.SpecialCells(xlFormulas, 23)  
   For Each cell In FormulaCells  
       If cell.Value < 0 Then cell.Font.Color = vbRed  
   Next cell  
End Sub
 
http://j-walk.com/ss/excel/tips/tip07.htm
 
Вы правы, только я отвечал Vovak, и я делал акцент делал на слово ВСЕ)  
в плане того что с аргументом 23, выбирает ВСЕ числовые значения, а не только 23
 
Dophin Акела промахнулся Дмитрий прав. Вот ссылка которая будет полезна для осмысливания SpecialCells:  
 
http://translate.google.kz/translate?hl=ru&sl=en&u=http://www.mvps.org/dmcritchie/excel/proper.htm&ei=adYxS8nNNpWGsAaij8W9Bw&sa=X&oi=translate&ct=result&resnum=3&ved=0CBIQ7gEwAg&prev=/search%3Fq%3DSelection.SpecialCells(xlConstants%26hl%3Dru%26sa%3DG
 
Можно влезу со своим комментарием?  
Как уже замечено:  
Ошибки(xlErrors) - 16    
Логические(xlLogical) - 4    
Номера(xlNumbers) - 1    
Текстовые(xlTextValues) - 2  
А 23=16+4+2+1  
Т.е. все, но это уже выяснили.  
А смысл в том, чтобы получить набор констант их надо сложить (логическое сложение или "или")  
Например, 19 - будет без текста. 16,4,1  
 
Аналогичным способом кнопки в мсгбокс набираются.
Bite my shiny metal ass!      
 
{quote}{login=The_Prist}{date=23.12.2009 10:02}{thema=Re: }{post}{quote}{login=Лузер™}{date=23.12.2009 09:58}{thema=}{post}Например, 19 - будет без текста. 16,4,1{/post}{/quote}Наверное, имелось ввиду 19 - без логических? :-)  
Без текста - ОЧКО - 21{/post}{/quote}За арифметику надо мне ставить двойку. Вне зависимости от того, что имелось в виду :)
Bite my shiny metal ass!      
Страницы: 1
Читают тему
Loading...