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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 23:54   #11
Volodymyr
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 70
По умолчанию

спасибо за помощь, Все работает как хотел.

Володя.
Volodymyr вне форума Ответить с цитированием
Старый 05.05.2009, 00:29   #12
Volodymyr
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 70
По умолчанию

есть еще 1 вопрос:
я запусил Ваш макрос на таблице с 12000 строками, на что макрос выдал ошибку в строке:
Intersect(cell.EntireRow, sh.Range("a:ad")).Interior.ColorInd ex = Index
Ошибка:
Run-time error 9.
С чем она может быт связана?
Volodymyr вне форума Ответить с цитированием
Старый 05.05.2009, 00:39   #13
Volodymyr
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 70
По умолчанию

все, нашел ошибку сам. Я пытался записать цвет через RGB(153, 153, 255), а он начал ругаться.
Volodymyr вне форума Ответить с цитированием
Старый 05.05.2009, 08:16   #14
Volodymyr
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 70
По умолчанию

Увжаемые фомчне,
а как в предложенный вариант макроса записать цвет в RGB?
на запись:
Case "Фирма1": Index = RGB(0, 0, 255)
появляется ошибка Run-time error 9?
Volodymyr вне форума Ответить с цитированием
Старый 05.05.2009, 08:26   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Вместо, например,
Код:
[A1].Interior.ColorIndex = 3
используйте
Код:
[A1].Interior.Color = RGB(255, 0, 0)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.05.2009, 08:29   #16
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

В таком виде всё работает без ошибок:
Код:
Sub Main()
    Application.ScreenUpdating = False
    Dim sh As Worksheet: Set sh = ActiveSheet: Dim cell As Range
    sh.UsedRange.Offset(1).Interior.ColorIndex = 0    ' очистка цвета
    Dim ra As Range: Set ra = Intersect(sh.UsedRange.Offset(1), sh.Columns("AD"))
    For Each cell In ra.Cells
        Select Case Trim(cell.Value)
            Case "Фирма1": Index = RGB(223, 5, 255)
            Case "Фирма2": Index = RGB(223, 5, 107)
            Case "Фирма3": Index = RGB(223, 95, 57)
            Case "Фирма4": Index = RGB(223, 195, 7)
            Case "Фирма5": Index = RGB(223, 55, 97)
            Case "Фирма6": Index = RGB(223, 105, 7)
            Case "Фирма7": Index = RGB(223, 155, 97)
            Case Else: Index = RGB(255, 255, 200)
        End Select
        Intersect(cell.EntireRow, sh.Range("a:ad")).Interior.Color = Index
    Next
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.05.2009, 09:52   #17
Volodymyr
Пользователь
 
Регистрация: 28.02.2008
Сообщений: 70
По умолчанию

все работает,
Спасибо большое.

Последний раз редактировалось Volodymyr; 05.05.2009 в 09:58.
Volodymyr вне форума Ответить с цитированием
Старый 05.05.2009, 09:54   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Вы не внимательны.
Не
Код:
.Interior.ColorIndex = Index
, а
Код:
.Interior.Color = Index
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 05.05.2009, 09:54   #19
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

В предыдущих 2 сообщениях Вам уже указали на ошибку:

Напишите
Intersect(cell.EntireRow, sh.Range("a:ad")).Interior.Color = Index

вместо
Код:
Intersect(cell.EntireRow, sh.Range("A:BF")).Interior.ColorIndex = Index
EducatedFool вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
касательно формата данных Volodymyr Microsoft Office Excel 5 24.11.2008 18:03
Копирования строк из одной таблици в другую Andersen Microsoft Office Access 6 13.08.2008 10:46
касательно выделения столбцов Volodymyr Microsoft Office Excel 2 20.07.2008 11:47
касательно выборки по 2 критериям Volodymyr Microsoft Office Excel 6 29.02.2008 10:06