Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки / 5 сообщений из 5, страница 1 из 1
28.08.2014, 12:26
    #38731441
puma_w
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
Добрый день. Подскажите как лучше сделать следующее (через VBA):
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки (примерно 300 строк) ?
...
Рейтинг: 0 / 0
28.08.2014, 12:28
    #38731447
puma_w
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
Вот файл....
...
Рейтинг: 0 / 0
28.08.2014, 12:50
    #38731486
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
puma_w,

Подсчитать сумму ячеек по цвету заливки
Только в Вашем случае строку:
Код: vbnet
1.
If rCell.Interior.Color = lColor Then


надо заменить на неравенство:
Код: vbnet
1.
If rCell.Interior.Color <> lColor Then
...
Рейтинг: 0 / 0
28.08.2014, 15:54
    #38731818
puma_w
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
Спасибо за подсказку, только вот при вызове функции через код VBA выдаёт ошибку

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Function SumByInteriorColor(rRange As Range, rColorCell As Range, Optional bSumHide As Boolean = False)
    Dim lColor As Long, rCell As Range, dblSum As Double, vVal
    lColor = rColorCell.Interior.Color
    For Each rCell In rRange
        If rCell.Interior.Color <> lColor Then
            vVal = rCell.Value
            If IsNumeric(vVal) Then
                If rCell.EntireRow.Hidden Or rCell.EntireColumn.Hidden Then
                    If bSumHide Then dblSum = dblSum + vVal
                Else
                    dblSum = dblSum + vVal
                End If
            End If
        End If
    Next rCell
    SumByInteriorColor = dblSum
End Function


Sub CommandButton4_Click()
t = SumByInteriorColor(D3:D20;H27)
End Sub
...
Рейтинг: 0 / 0
28.08.2014, 16:03
    #38731851
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
puma_w,

Логично. Синтаксис обращения к функциям и диапазонам из тела процедуры не тот же, как для функции листа. Вы бы хоть над азами поработали.
Код: vbnet
1.
t = SumByInteriorColor(Range("D3:D20"),Range("H27"))


советую почитать на досуге: Как обратиться к диапазону из VBA
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]