Страница 1 из 2
Excel - формула "Сцепить"
Добавлено: 17 апр 2006, 16:13
siesta
В формуле =Сцепить() до кучи собирается текстовая информация, часть из которой надо сделать жирным шрифтом. У кого какие идеи?
Добавлено: 17 апр 2006, 17:53
Игорь Акопян
идея только через макрос...
Добавлено: 17 апр 2006, 23:52
Naeel Maqsudov
Угу. It is impossible
Может вместо жирного шрифта использовать заглавные буквы? Это проще.
Добавлено: 18 апр 2006, 11:19
siesta
Правило №1: "Начальник всегода прав!"
А жирненькие букофки - это каприз руководства.
Так где же примеры макросов от продвинутых монстров тупым юзерам?

Добавлено: 18 апр 2006, 13:27
sergvk
Код: Выделить всё
ActiveCell.Characters(Start:=1, Length:=10).Font.FontStyle = "полужирный"
читаем так:

в активной ячейке, начиная с первого символа (Start:=1) сделать такой-то стиль шрифта десяти символам (Length:=10).
Добавлено: 18 апр 2006, 22:07
Naeel Maqsudov
Несомненно лучше делать ".Font.Bold=true" вместо ".FontStyle=", иначе при запуске в нерусифицированной windows работать не будет.
Я тут попробовал набросать альтернативную функцию СЦЕПИТЬ2, но оказалось что из пользовательской функции листа нельзя делать активных действий с ячейками. Тогда я попробовал все данные запихать в глобальные переменные и запланировать запуск другого макроса через секунду, но и тут засада - Application.OnTime игнорируется в процессе работы пользовательской функции листа
Т.е. выход один - самый тупой - вместо функции СЦЕПИТЬ написать обработчик события у нужного листа:
Код: Выделить всё
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Select Case Target.Address
Case "$B$1", "$C$1" 'Тут делается D1=СЦЕПИТЬ(B1;C1) и C1 жирным
[D1] = [B1] & [C1]
[D1].Characters(Len([B1]) + 1, Len([C1])).Font.bold = True
Case .... 'Аналогичных секций добавить по вкусу столько сколько надо
...........
End Select
End Sub
Добавлено: 19 апр 2006, 08:54
Sokl
Exactly, ЁМоё

!!!
Вот моя попытка:
Код: Выделить всё
Function СЦЕПИТЬЖ(Target As Range, Text1, Text2) As String
'Target.FormulaR1C1 = Text1 & Text2
'... ОПАЧКИ! А писать на листик низя!!!
'... Читать пжлста!
'MsgBox Target.Value
СЦЕПИТЬЖ = Text1 & Text2
End Function
Добавлено: 20 апр 2006, 12:44
siesta
Макросы - команды просто нефунционально. Хочется макрос-функцию. Сама вот чего родила.
Function BoldFont(InString, StartSimb) As String
Dim i As Integer, StringLength As Integer
BoldFont = ""
StringLength = Len(InString)
For i = StartSimb To StringLength Step 1
BoldFont = BoldFont & ...... 'вот здесь надо что-то умное дописать, что делает букофки жиренькими
Next i
End Function
SOS!!! Help me!Help me!
Добавлено: 20 апр 2006, 15:27
Игорь Акопян
siesta, дело в том, что функция сможет вернуть только строку, для изменения формата надо достучаться до соответствующих свойств объекта Characters
Добавлено: 20 апр 2006, 18:05
siesta
Ну так помогите ж найти что это за объект!!!