Поскольку у вас могут быть разные операторы, кроме знака +
, вы можете сделать что-то подобное в VBA:
Function count_parts(rngFormula As Range) As Integer
'Create an array with all the operators you want to account for
Dim operatorArray As Variant, operator As Variant
operatorArray = Array("+", "-", "/", "*")
'Capture the formula in the cell passed in
Dim strFormIn As String: strFormIn = rngFormula.Formula
Dim strFormOut As String: strFormOut = strFormIn
'Loop through the operators in the array and swap them out
'So the strFormOut is completely rid of them all
For Each operator In operatorArray
strFormOut = Replace(strFormOut, operator, "")
Next
'Count the difference in characters between our starting
'formula and the formula without operators, subtracting 1.
count_parts = Len(strFormIn) - Len(strFormOut) + 1
End Function
Если +
является единственным оператором, который вы должны учитывать, тогдаМожно использовать гораздо более простую функцию:
Function count_parts(rngFormula As Range) As Integer
count_parts = UBound(Split(rngFormula.Formula, "+")) + 1
End Function
Вы можете вставить любой из них в новый модуль в вашем VBE, и после сохранения книги вы можете использовать эту формулу в такой ячейке, как =count_parts(A1)