"Крамольный" вопрос по форматированию

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Здравствуйте, Уважаемые!
Вот такой "крамольный" вопрос:
можно ли применить форматирование к переменной вот в таком примере

Код: Выделить всё

    Dim СумНаценки As Integer
     Range("E1").FormulaLocal = "Сумма наценки во внешнем приходе сосставляет: " & СумНаценки & " грн."
        With Range("E1").Font
            .Name = "Tahoma"
            .Size = 8
            .ColorIndex = 5
        End With  
т.е. к переменной СумНаценки применить формат отличный от всей строки
вроде как лабуда полная, а может можно? :rolleyes:
Спасибо.
son
Сообщения: 18
Зарегистрирован: 21 янв 2008, 10:17

Сделать-то так можно, только ячейка будет текстового типа все равно... Так что непонятно зачем это вам :confused: ? При выводе всегда можно воспользоваться функцией cStr и при этом тип вашей переменной не изменится
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

son, да честно говоря, вопрос скорее экспериментального плана :) . Конечно, сделать можно и по другому. Можно просто значение переменной поместить в отдельную ячейку и форматить как хочешь. т.е. текст отдельно, значение отдельно.
Так что непонятно зачем это вам
ну например, чтобы значение, в отличие от всей строки, сделать "жирный", красный.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте VictorM.
Вы задали вопрос "применить форматирование к переменной", но на самом деле в примере происхдит форматирование ячейки и конкатенация переменной с текстом.
Как написал son "ячейка бодет текстовой", данные размещаемые в ячейке ("E1") нельзя использовать в иатематических операциях, а изменять форматирование ячейки - конечно можно. Простите не понял в чем "крамола" :)
Евгений.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Можно для цифровой ячейки задать формат типа
[Красный]"Сумма наценки во внешнем приходе составляет: "0.00
Такая ячейка нормально будет участвовать в арифметических операциях.
А вот раскрасить её части в разные цвета заданием формата неудастся
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

Виктор, а разве речь идёт не о следующем коде (просто пример)

Код: Выделить всё

Dim S As String
Dim СумНаценки As Integer
Dim Pos1 As Integer

СумНаценки = 4567
S = "Сумма наценки во внешнем приходе составляет: " & _
              CStr(СумНаценки) & " грн."
Pos1 = InStr(1, S, "грн.")
If Pos1 > 46 Then
  Range("E1").FormulaLocal = S
  With Range("E1").Characters(Start:=46, Length:=Pos1 - 46).Font
        .Name = "Tahoma"
        .FontStyle = "полужирный"
        .Size = 14
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
End If
End Sub
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Serge_Bliznykov.
Какой Вы ожидаете получить результат при использовании подобной формулы =E1 * 1 ? ;)
Евгений.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Teslenko_EA - не ожидал, что вопрос перейдет в такие сложные материи. :) Я написал то, что написал. Обыкновенная строка
конкатенация переменной с текстом.
и всего то. И ни в каких дальнейших операция она, естественно, не участвует. Скажем так - информационная строка. И все!
А по поводу форматирования - "взгрустнулось", а нельзя ли... :rolleyes:
На что Aent дал четкий ответ:
А вот раскрасить её части в разные цвета неудастся
в принципе и все :) , ясно и понятно.
Спасибо всем за участие.
P.S. Serge_Bliznykov, прошу прощенья, сначала написал ответ, а потом проверил Ваш код. Это то, что нужно!
Значит все-таки можно! :) :)
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

VictorM, ПОПРОБУЙТЕ МОЙ КОД двумя постами выши!!!!!

Teslenko_EA, разумеется #ЗНАЧ! А какой ещё результат можно ожидать от строки?! По моему автор хотел строчку с выделенным текстом! Всё. Никаких умножений/сложений/вычитаний... ;-)))
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Serge_Bliznykov, да, спасибо. Это именно то, что нужно! Вы меня совершенно правильно поняли.
P.S. Уже поместил Ваш код в рабочий модуль, все на Ура!
Ответить