
Opäť a zasa netušíme o čo ide, ale ak len o hromadné prepočítanie v nejakom stĺpci pomocou makra s použitím Vášho vzorca, tak toto vypočíta výsledok celého stĺpca C a vloží do D počet mesiacov. Neviem ale, či to bude rýchlejšie, ako keby ste tam mali vzorce. Vyskúšajte.
Sub Meciacov()
Dim PoleD(), PoleM() As Integer, i As Long, MM As Integer, Dnes As Date, R As Long
With ThisWorkbook.Worksheets("Hárok1")
Dnes = .Cells(2, 12)
R = .Cells(.Rows.Count, "C").End(xlUp).Row - 1
PoleD = .Cells(2, 3).Resize(R).Value
ReDim PoleM(1 To UBound(PoleD))
For i = LBound(PoleD) To UBound(PoleD)
PoleM(i) = (Year(Dnes) - Year(PoleD(i, 1))) * 12 + Month(Dnes) - Month(PoleD(i, 1))
Next i
.Cells(2, 4).Resize(R).Value = Application.Transpose(PoleM)
End With
End Sub

No v exceli existuje aj skrytá funkcia DATEDIFF, ktorej výsledok môže byť aj počet mesiacov.
http://www.exceltrick.com/formulas_macros/excel-datedif-function/

Áno poznám, najskôr som mu ju tam chcel dať, naschvál som mu tam dal jeho vzorec, a ešte som zdôraznil použitie tohto vzorca, a čakám na reakciu, aby som sa mohol opýtať, ako presne má ten prepočet fungovať. Či je to takto správne, lebo rozdiel napr. 10 dní vyhodnotí ako 0, ak je to v jednom mesiaci, a ako 1 ak je to na prelome. Neviem ako sa to má v jeho obore počítať.
Stačí v makre zmeniť priradenie do poľa na:
DateDiff("m", PoleD(i, 1), Dnes)