Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2009, 19:06   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию Насчет изменения цвета текста в ячейке

Странность с изменением цвета в ячейке: нужно, если цвет красный, заменить на другой. Пишу в ячейках текст, и делаю красный цвет у одной из них - B2. Но ничего не срабатывает.

Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

For Each cell In Sh.Range("A1:B2")
        
        If (cell.Font.Color = -16776961 And cell.Font.TintAndShade = 0) Then
        
        cell.Font.Color = -312321
        cell.Font.TintAndShade = 0
        
            End If
            Next cell
            
End Sub
motorway вне форума Ответить с цитированием
Старый 18.07.2009, 19:26   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Может не стоит использовать столь сложные цветовые оттенки 2007 Excel? Используйте либо константы, либо простые цлые числа.
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
For Each cell In Sh.Range("A1:B2")        
        If (cell.Font.Colorindex = 3 And cell.Font.TintAndShade = 0) Then    
        cell.Font.Colorindex = 6
        cell.Font.TintAndShade = 0    
         End If
       Next cell          
End Sub
либо
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
For Each cell In Sh.Range("A1:B2")        
        If (cell.Font.Color = vbRed And cell.Font.TintAndShade = 0) Then    
        cell.Font.Color = vbYellow
        cell.Font.TintAndShade = 0    
         End If
       Next cell          
End Sub
И зачем Вам проверка на оттенки и тень(TintAndShade)? Может убрать её? Или так надо - если отсутствует тень и оттенок, то меняем цвет, а если есть, то не меняем?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 18.07.2009, 19:38   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ваш код работает. Проверку на оттенки я сделал потому, что записывал макрорекордером установку цвета, и там добавилось это. Можно убрать. Мне желательно, чтобы можно было устанавливать и проверять цвет в больших диапазонах, т.е. не только основные цвета. Поэтому такое значение используется.

Но если я определил цвет таким образом, что мне дальше с ним делать, чтобы можно было сделать проверку?

Последний раз редактировалось motorway; 18.07.2009 в 19:58.
motorway вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отформатировать часть текста в ячейке eto Microsoft Office Excel 9 03.04.2016 19:33
Макрос для изменения цвета заливки rootking Microsoft Office Excel 6 11.01.2011 10:38
Размеры текста, после изменения координат? (TmetafileCanvas) AnTe Win Api 1 24.06.2009 08:41
форматирование текста в ячейке alex_r Microsoft Office Excel 2 30.04.2009 19:12
Смена цвета текста или фона строки относительно возвращённого значения abdumanon Microsoft Office Excel 1 07.04.2009 02:10