@reneq16: suma1 = Application.WorksheetFunction.sum(Range("C1:C" & d)) Przy takim czymś pojawia się komunikat "Sub or function not defined" i wskazuje na Range.
@PrzecineQ: Function OstatniaPozycja() As Long OstatniaPozycja = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count End Function Sub suma_test() Dim a As Long
a = WorksheetFunction.Sum(Range("D1:D" & OstatniaPozycja)) MsgBox (a)
@lukmarr: UsedRange to zdecydowanie nie jest dobry sposób na wyznaczanie ostatniego wiersza, ta właściwość nie powinna istnieć, bo nie nadaje się do niczego w poważnych zastosowaniach.
Przy takim czymś pojawia się komunikat "Sub or function not defined" i wskazuje na Range.
Option Explicit
Sub licz()
Dim suma1
Dim d: d = 27
suma1 = Application.WorksheetFunction.Sum(Range("a1:a" & d))
MsgBox suma1
End Sub
Mi działa. Sprawdź, czy gdzieś nie masz literówki.
@reneq16: Czy język excela ma jakieś znaczenia przy funkcjach?
Function OstatniaPozycja() As Long
OstatniaPozycja = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
End Function
Sub suma_test()
Dim a As Long
a = WorksheetFunction.Sum(Range("D1:D" & OstatniaPozycja))
MsgBox (a)
End Sub