Hi I am a beginner in excel so please bear with my ignorance.

Lately i found myself in need of a function that counts the number of words in a range of cells (counting the empty cells as 0, of course).

Surfing the net i found this simple VBA code:

```
Function intWordCount(rng As Range) As Integer
intWordCount = UBound(Split(Application.WorksheetFunction.Trim(rng.Value), " "), 1) + 1
End Function
```

I found this extremly useful as i could just use

```
=intwordcount(A2)+intwordcount(B2)+intwordcount(C2)
```

in excel function bar to sum the number of words contained in 3 cells without counting the empty ones.

The problem is that i now need to do this on a large range of cells in a column and simply using

```
=intwordcount(A2:A18)
```

does not work.

I think the error is that it tries to apply the function on the range considering it as a single big cell whereas i want it to apply the function to every single cell in the range and sum every output to obtain the total.

I’d be really grateful if someone could help me cause i can’t figure out a solution.

I’m using Excel 2016.

Thank you very much for your assistance.

Loop through the cells and apply the same logic.

The function will now work for *single-cell* ranges & *multi-cell* ranges

```
Function intWordCount(rng As Range) As Integer
Dim MyCell as Range
For Each MyCell in rng
intWordCount = intWordCount + UBound(Split(Application.WorksheetFunction.Trim(MyCell.Value), " "), 1) + 1
Next MyCell
End Function
```

### Answer：

If you have a recent version of Excel:

```
Function intWordCount(rng As Range) As Long
Dim wf As WorksheetFunction, s As String
Set wf = Application.WorksheetFunction
s = wf.TextJoin(" ", True, rng)
intWordCount = UBound(Split(wf.Trim(s), " "), 1) + 1
End Function
```

Tags: excelexcel, vba