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

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


надо заменить на неравенство:
Код: vbnet
1.
If rCell.Interior.Color <> lColor Then
...
Рейтинг: 0 / 0
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
    #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
Необходимо получить сумму чисел ячеек не помеченных синим цветом для каждой строки
    #38731851
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
puma_w,

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


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


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