Страница 2 из 2
Добавлено: 20 апр 2006, 18:36
sergvk
siesta, ... или я начинаю входить в штопор над Вашим вопросом или я отстал от жизни -

((
Мне начинает казаться, что Вы хотите написать ПОЛЬЗОВАТЕЛЬСКУЮ функцию для форматирования (кот можно вставить в ячейку мастером функций), но этого нельзя сделать (если я не "заблудился в соснах") -

)
Добавлено: 20 апр 2006, 21:08
Naeel Maqsudov
Подтверждаю, функцию НЕЛЬЗЯ. Во время работы функции нельзя изменять значения свойств объектов Range, Application... Возможно и других - не проверял.
Макросы - команды просто нефунционально
Выше пример обработчика событий. В готовом документе как раз очень функционально. Пользователю вообще ничего не надо делать - ни макросов запускать, ни формул вводить. Знай себе вводи значения.
Добавлено: 20 апр 2006, 21:19
Naeel Maqsudov
Правило №1: "Начальник всегода прав!"
А жирненькие букофки - это каприз руководства.
Этимология слова "каприз" указыват на первоначальный его смысл - "козьи выходки"
Реализация этого "каприза" экономически не целеесообразна - это ясно как день.
Добавлено: 21 апр 2006, 09:21
siesta
В ваших примерах обработчиков событий все хорошо работает до тех пор, пока обрабатывем аргументы функции "СЦЕПИТЬ" в виде текста. Если же аргумент - вложенная функия (собственно ради чего и стоит использовать ту функцию "СЦЕПИТЬ"), то ничего не работает...

Добавлено: 25 апр 2006, 13:32
Sokl
Чем чёрт не шутит! Может, так проканает:
Код: Выделить всё
Private Sub Worksheet_Calculate()
On Error Resume Next
If ([D1] <> [B1] & [C1]) Then
[D1] = [B1] & [C1]
[D1].Characters(1, Len([B1])).Font.Bold = False
[D1].Characters(Len([B1]) + 1, Len([C1])).Font.Bold = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If ([D1] <> [B1] & [C1]) Then
[D1] = [B1] & [C1]
[D1].Characters(1, Len([B1])).Font.Bold = False
[D1].Characters(Len([B1]) + 1, Len([C1])).Font.Bold = True
End If
End Sub
Добавлено: 25 апр 2006, 13:34
Sokl
Кстати, Naeel Maqsudov, а Вы пробовали "сцеплять" своим макросом цыферки? Занимательный эффект наблюдается, знаете ли.