Как решить задачку в общем виде?

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Как решить задачку в общем виде?

Сообщение sonata » 25.11.2003 (Вт) 16:14

Есть интересная задачка:
в зависимости от цвета ячейки определенного столбца,
присваиваем значения "1" в другие столбцы,чтобы потом иметь возможность отобрать и посчитать ячейки с определенным цветом.
Я сделала так, но хотелось бы услышать мнение Гуру...
Как сделать так, чтобы иметь возможность использовать эту задачку в других приложениях...

Код: Выделить всё
Public Sub Только_акты_передачи()
'Сравниваем цвета ячеек Столбца А(лист "СМР_акты ")
'Задача: Условие "Если цвет ячейки желтый(6), то в ячейке Столбца D(4) ставим 1
'Условие "Если цвет ячейки зеленый(4), то в ячкйке Столбца E(5) ставим 1
'Условие "Если цвет ячейки красный(3), то в ячкйке Столбца F(6) ставим 1
Dim i As Integer
    For i = 1 To 320
    Sheets("СМР_акты").Select
    Cells(i, 1).Select
        If (Selection.Interior.ColorIndex = 6) Then
            Sheets("СМР_акты").Cells(i, 4).Value = 1
    ElseIf (Selection.Interior.ColorIndex = 4) Then
            Sheets("СМР_акты").Cells(i, 5).Value = 1
    ElseIf (Selection.Interior.ColorIndex = 3) Then
            Sheets("СМР_акты").Cells(i, 6).Value = 1
    ElseIf (Selection.Interior.ColorIndex = 44) Then
            Sheets("СМР_акты").Cells(i, 7).Value = 1
       End If
   Next i
End Sub

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 25.11.2003 (Вт) 16:41

а сразу посчитать сложно :?:
Ничто так не ограничивает полёт мысли программиста, как компилятор

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 25.11.2003 (Вт) 16:46

Так ведь и знала, что не совсем поймут...
Мне еще нужно визуальное цветное представление...
Так хочется цвета, ярких красок, когда на дворе слякоть и дождь...

jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Сообщение jetcom » 25.11.2003 (Вт) 19:39

2sonata: Только, на мой взгляд, Select здесь был лишним, - просто перебирай в цикле Cells(i,1) и ... тот же результат, но за меньшие деньги! :wink:
Всё сбудется!!!

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 25.11.2003 (Вт) 22:33

ну так кто против красок :?:
я просто к тому что зачем делать еще одну функцию, когда можно все в одной совместить :!:
Ничто так не ограничивает полёт мысли программиста, как компилятор

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.11.2003 (Ср) 10:02

Ну нужно человеку единички ставить :)

Я бы сделал функцию
Код: Выделить всё
function IsColor(r as excel.range,ColorIndex as long) as variant
  iscolor=iif(r.interior.colorindex=colorindex,1,vbnullstring)
end function
и растянул бы её в те ячейки, где она должна быть.

Кстати, чего у нас с почтой? Как я понимаю, ты моего письма не получала, хотя я его отправлял. Ещё раз отправить? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList