Привет. Подскажите, возможно ли чтобы при использовании функции "Если", в выбранном диапазоне, учитывались только те ячейки, которые не содержат формул? Как прописать такое условие? Т.е. внешне все ячейки имеют цифры, но в одни ячейки формулы вбиты вручную, а в другие через формулы) Как учитывать только те ячейки, которые содержат цифры вбитые вручную? Спасибо.
Привет. Подскажите, возможно ли чтобы при использовании функции "Если", в выбранном диапазоне, учитывались только те ячейки, которые не содержат формул? Как прописать такое условие? Т.е. внешне все ячейки имеют цифры, но в одни ячейки формулы вбиты вручную, а в другие через формулы) Как учитывать только те ячейки, которые содержат цифры вбитые вручную? Спасибо.Juanvl
Или можно условие по цвету прописать. Как учитывать, например, только красные ячейки в условии? Только красные суммировать [moder]Файл с примером покажете?[/moder]
Или можно условие по цвету прописать. Как учитывать, например, только красные ячейки в условии? Только красные суммировать [moder]Файл с примером покажете?[/moder]Juanvl
buchlotnik, да как угодно, цвет я предложил как альтернативу , т.к. и то и другое приведёт к одинаковому решению. Файл для примера, по просьбе модератора.
buchlotnik, да как угодно, цвет я предложил как альтернативу , т.к. и то и другое приведёт к одинаковому решению. Файл для примера, по просьбе модератора.Juanvl
По секрету всему свету ... у Range есть свойство .HasFormula [vba]
Код
Function SumConstants(rng As Range) Dim cell As Range For Each cell In rng.Cells SumConstants = SumConstants - (Not cell.HasFormula) * cell Next End Function
[/vba]
По секрету всему свету ... у Range есть свойство .HasFormula [vba]
Код
Function SumConstants(rng As Range) Dim cell As Range For Each cell In rng.Cells SumConstants = SumConstants - (Not cell.HasFormula) * cell Next End Function
чё ж по секрету-то? есть такое, но я не программист и мне простительно - тупо не люблю конструкции с Not или НЕ() - не знаю почему, ретроград вопрос по сути - а так оно реально быстрее?
[offtop]
Цитата
По секрету всему свету ...
чё ж по секрету-то? есть такое, но я не программист и мне простительно - тупо не люблю конструкции с Not или НЕ() - не знаю почему, ретроград вопрос по сути - а так оно реально быстрее?buchlotnik
Сообщение отредактировал buchlotnik - Суббота, 21.05.2016, 21:33
SLAVICK, здесь-то понятно: там текст в ячейке, а не формула. А вот почему такой вариант не работает, понять не могу :( [vba]
Код
Function СУМ_КОНСТ(Rng As Range) As Double Set Rng = Rng.SpecialCells(xlCellTypeConstants, xlNumbers) СУМ_КОНСТ = WorksheetFunction.Sum(Rng) End Function
[/vba]
SLAVICK, здесь-то понятно: там текст в ячейке, а не формула. А вот почему такой вариант не работает, понять не могу :( [vba]
Код
Function СУМ_КОНСТ(Rng As Range) As Double Set Rng = Rng.SpecialCells(xlCellTypeConstants, xlNumbers) СУМ_КОНСТ = WorksheetFunction.Sum(Rng) End Function
UDF action being ignored. Excel will not allow a UDF written in VBA to alter anything except the value of the cell in which it is entered. You cannotmake a VBA UDF which directly:
Alters the value or formula or properties of another cell. Alters the formatting of the cell in which it is entered. Alters the environment of Excel. This includes the cursor. Uses FIND, SpecialCells, CurrentRegion, CurrentArray, GOTO, SELECT, PRECEDENTS etc : although you can use Range.End. Note you can use FIND in Excel 2002/2003.
UDF action being ignored. Excel will not allow a UDF written in VBA to alter anything except the value of the cell in which it is entered. You cannotmake a VBA UDF which directly:
Alters the value or formula or properties of another cell. Alters the formatting of the cell in which it is entered. Alters the environment of Excel. This includes the cursor. Uses FIND, SpecialCells, CurrentRegion, CurrentArray, GOTO, SELECT, PRECEDENTS etc : although you can use Range.End. Note you can use FIND in Excel 2002/2003.