цвет не изменяется

Тема в разделе "Visual Basic", создана пользователем segail, 7 ноя 2009.

  1. segail

    segail Гость

    Здравствуйте. Подскажите почему при добавление десятичного значения Round(.Range("D25"), 1)цвет не изменяется?
    Код (Text):
    TextBox5 = Round(.Range("D25"), 0)
    If TextBox5 < 0 Then TextBox5.ForeColor = vbRed
    Формат ячейки числовой. Число десятичных знаков 1.
    В ячейки D25 записано -4,3
    При варианте Round(.Range("D25"), 0) значение в TextBox5 равно -4 цвет красный, если изменяю код Round(.Range("D25"), 1) значение в TextBox5 равно -4.3 цвет не изменяется.
     
  2. Tanya

    Tanya Гость

    Потому что, в данном случае, системный десятичный разделитель - запятая,
    а при преобразовании в строку
    TextBox5 = Round(.Range("D25"), 1) значение получилось с разделителем - точка: "4.3"

    при последующей проверке, VB видит, что текстбокс не содержит числа и игнорит эту проверку
    (по сути возникает ошибка, но она в макросе игнорится)
    If TextBox5 < 0 Then TextBox5.ForeColor = vbRed

    поэтому не жалеем переменных, и делаем, например вот так:
    Dim dbl As Double
    dbl = Round(Range("D25"), 1)
    TextBox1 = dbl
    TextBox1.ForeColor = iif(dbl<0, vbRed, vbBlue)

    Вообще же, не знаю насколько это полезно для вашей задачки, но есть обычное и условное форматирование ячейки
    оба они позволяют изменять цвет шрифта ячейки, если значения положительные/отрицательные
     
Загрузка...

Поделиться этой страницей