Страницы: 1
RSS
Конкатенация адреса и свойства элемента.
 
Давненько мы не замахивались на Вильяма, нашего, Шекспира:)  
Конкатенация адреса ячейки (или элемента коллекции, или элемента объекта) и строковой переменной содержащей свойство, для проверки в управляющих структурах, возможна?  
Пример:  
'список форматов, например в ComboBox'е:  
Формат = ".Font.ColorIndex"  
Формат = ".Font.Bold"  
Формат = ".Interior.ColorIndex"  
'связанный со списком форматов список допустимых значений:  
Значение = xlNone,.....,36,... 40  
Значение = False, True  
.........  
Set ОбластьПроверки = .Cells(1, 1).CurrentRegion  
For Each x In ОбластьПроверки        'перебираем элементы  
'и проверяем на соответствие критерию форматирования, для чего требуется преобразовать текстовое значение Формат .... в ключевое слово????  
If Cells(x.Row, x.Column) & Формат = Значение  Then 'не работает (как и другие варианты)  
'программа максимум - получить коллекцию(?) элементов соответствующих критерию и что-нибудь с ней сделать (или просто .Select).
 
Так не получится сделать.  
Имея текст типа ".Font.ColorIndex", не способа получить значение указанного свойства.  
 
Да и вообще, какой в этом смысл? Наверняка, есть решения попроще...
 
{quote}{login=EducatedFool}{date=24.03.2011 08:33}{thema=}{post}Так не получится сделать.  
Имея текст типа ".Font.ColorIndex", не способа получить значение указанного свойства.  
 
Да и вообще, какой в этом смысл? Наверняка, есть решения попроще...{/post}{/quote}  
 
у меня возник чисто теретический вариант...  
редактировать из одной процедуры текст другой процедуры, т.е. работать с VBE, как я понимаю...  
если не трудно, подскажите - это в принципе возможно?  
хотя по-любому это страшные заморочки, имхо.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=EducatedFool}{date=24.03.2011 08:33}{thema=}{post}1. Да и вообще, какой в этом смысл? 2. Наверняка, есть решения попроще...{/post}{/quote}  
2. Может быть и есть. С помощью SpecialCells(xlCellTypeSameFormatConditions) но здесь не понятно какие одинаковые форматы. И после некоторых попыток подозреваю, это действует только при наличии УФ (или вообще не работает);  
1. Смысл в следующем. Имея лист с данными отмеченными разными форматами, можно было-бы обращатся к нужным ячейкам с помощью универсальной процедуры. И процедура эта была бы заведомо короче чем с использованием If, Select Case....
 
{quote}{login=ikki}{date=24.03.2011 08:37}{thema=Re: }{post}{quote}{login=EducatedFool}{date=24.03.2011 08:33}{thema=}{post}...  
редактировать из одной процедуры текст другой процедуры...{/post}{/quote}  
думаю, что этим мы передвинем проблему в первую процедуру, но не решим её.
 
Sub getboldfont()  
Set myrng = Range("D3")  
Set a = CallByName(myrng, "font", VbGet)  
If CallByName(CallByName(myrng, "font", VbGet), "bold", VbGet) Then  
i = i + 1  
End If  
End Sub  
 
остаётся только использовать split,  
ну и проверку isobject или onerror, чтобы корректно работать с объектами и переменными
 
спасибо. ушёл искать переводчика справки по CallByName на государственный язык РФ.
 
дополнение к п.1:  
И если в список включить ".value" с возможностью установить для него любое значение, то получим аналог Find'a. Но без xlPart:(  
"Торопиться не надо!" (Саахов, х/ф "Кавказская пленница")
Страницы: 1
Читают тему
Наверх