А чем вам поможет пример? Если вы умеете писать макросы, примеры есть в справке по языку Visual Basic for Applications. Она доступна в сети (msdn.com). Если не умеете, мой пример вам ничего не даст.
вот пользовательская функция вставляете новый модуль в код страницы (инсерт - модуль) там пишете код функции
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell) + vResult End If Next rCell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = 1 + vResult End If Next rCell End If
ColorFunction = vResult End Function
Затем сохраняете и дальше в списке доступных функций у вас будет "определенные пользователем" ColorFunction(пример цвета; интервал подсчета; истина - sum/ложь - count) например, =ColorFunction(K15;I13:I33;ИСТИНА)
допишу на всякий случай, где писать функцию на листе книги нажать alt+F11 либо правой кнопкой по ярлычку листа "Исходный текст" Insert - Module переходите в модуль и копипастите текст функции туда
потом просто сохраняете и закрываете это все, если ошибок нет, он ничего не скажет переходите на свой рабочий лист, открываете список функций, ищете свою и используете как обычную функцию
жесть какая тогда вам нужно каким-то образом попасть в редактор Visual Basic http://office.microsoft.com/ru-ru/excel-help/HP010014111.aspx вот как тут написано вам нужен именно редактор
вам не нужны цвета если у вас есть функция, как на картинке то в первом аргументе вы выбираете ячейку-образец, например A2 во втором аргументе задаете интервал, по которому будет суммироваться, например D8:D32 в третьем, если вам нужна сумма - пишете Истина или 1 если нужен подсчет ячеек - Ложь или 0 или оставляете пустым
результат неверен? сама функция по-моему показывает тупо сумму всего интервала, а когда вы нажимаете ок - отбирает только нужный цвет текста или цвет заливки
Текст же покрашен вручную? не автоматическое условное форматирование?
no subject
Date: 2011-01-15 10:00 am (UTC)no subject
Date: 2011-01-15 11:05 am (UTC)лучший тред
Date: 2011-01-15 12:11 pm (UTC)no subject
Date: 2011-01-15 09:51 am (UTC)no subject
Date: 2011-01-15 09:57 am (UTC)no subject
Date: 2011-01-15 10:26 am (UTC)no subject
Date: 2011-01-15 10:13 am (UTC)no subject
Date: 2011-01-15 10:39 am (UTC)вставляете новый модуль в код страницы (инсерт - модуль)
там пишете код функции
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rColor.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell) + vResult
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
ColorFunction = vResult
End Function
Затем сохраняете и дальше в списке доступных функций у вас будет "определенные пользователем"
ColorFunction(пример цвета; интервал подсчета; истина - sum/ложь - count)
например, =ColorFunction(K15;I13:I33;ИСТИНА)
no subject
Date: 2011-01-15 10:43 am (UTC)щас
no subject
Date: 2011-01-15 10:48 am (UTC)no subject
Date: 2011-01-15 10:59 am (UTC)no subject
Date: 2011-01-15 11:00 am (UTC)no subject
Date: 2011-01-15 10:53 am (UTC)на листе книги нажать alt+F11
либо правой кнопкой по ярлычку листа "Исходный текст"
Insert - Module
переходите в модуль и копипастите текст функции туда
no subject
Date: 2011-01-15 11:03 am (UTC)переходите на свой рабочий лист, открываете список функций, ищете свою и используете как обычную функцию
no subject
Date: 2011-01-15 11:11 am (UTC)no subject
Date: 2011-01-15 11:17 am (UTC)в меню редактора есть Insert
далее Module
и в окошко модуля копируете текст
должно быть как-то вот так
потом сохраняете по дискетке и закрываете редактор нафик и забываете о нем
у вас среди стандартных функций должна появиться пользовательская
no subject
Date: 2011-01-15 11:30 am (UTC)не забудьте только, что если вы ищете по заливке, то в фукции в трех местах должно быть слово Interior, а если по цвету - Font
no subject
Date: 2011-01-15 11:48 am (UTC)там есть вставить, но среди пунктов нет слова Модуль
no subject
Date: 2011-01-15 12:01 pm (UTC)нет сейчас под рукой 2007(
no subject
Date: 2011-01-15 12:06 pm (UTC)no subject
Date: 2011-01-15 12:13 pm (UTC)тогда вам нужно каким-то образом попасть в редактор Visual Basic
http://office.microsoft.com/ru-ru/excel-help/HP010014111.aspx
вот как тут написано
вам нужен именно редактор
no subject
Date: 2011-01-15 12:21 pm (UTC)точная ссылка
no subject
Date: 2011-01-15 12:24 pm (UTC)no subject
Date: 2011-01-15 12:30 pm (UTC)если у вас есть функция, как на картинке
то в первом аргументе вы выбираете ячейку-образец, например A2
во втором аргументе задаете интервал, по которому будет суммироваться, например D8:D32
в третьем, если вам нужна сумма - пишете Истина или 1
если нужен подсчет ячеек - Ложь или 0 или оставляете пустым
no subject
Date: 2011-01-15 12:36 pm (UTC)кгода задаю аргументы, ниже значение выставляется верное, после того как нажимаю ОК, в ячейке уже неверное
no subject
Date: 2011-01-15 12:40 pm (UTC)сама функция по-моему показывает тупо сумму всего интервала, а когда вы нажимаете ок - отбирает только нужный цвет текста или цвет заливки
Текст же покрашен вручную? не автоматическое условное форматирование?
no subject
Date: 2011-01-15 12:47 pm (UTC)no subject
Date: 2011-01-15 08:57 pm (UTC)no subject
Date: 2011-01-15 10:14 am (UTC)no subject
Date: 2011-01-15 10:29 am (UTC)