Io ho provato varie volte e non mi rimanda nessun errore.
Per "Buco" nei dati intendi forse che ci sia qualche riga vuota??
se è così meglio gestire il ciclo IF con una condizione diversa tipo
SE "ciccio" = empty Then
salta una riga (i = i+1)
end if
Ho usato questo codice
Codice:
Option Explicit
Sub AnalyzeData()
Dim i, LastRow As Integer
Dim avReturn, stDev, vrnc As Double
LastRow = Sheets("Storico_CSV").Cells(Rows.Count, 11).End(xlUp).Row
Sheets("Storico_CSV").Range("S1") = "Daily Returns" 'ex J1
Sheets("Storico_CSV").Range("U1") = "# Data" 'ex L1
Sheets("Storico_CSV").Range("U2") = LastRow 'ex L2
For i = 3 To LastRow
Sheets("Storico_CSV").Range("S" & i) = Sheets("Storico_CSV").Range("O" & i - 1) - (Sheets("Storico_CSV").Range("O" & i) / Sheets("Storico_CSV").Range("O" & i - 1))
Next i
avReturn = Application.WorksheetFunction.Average(Sheets("Storico_CSV").Range("S2:S" & LastRow))
stDev = Application.WorksheetFunction.StDev_P(Sheets("Storico_CSV").Range("S2:S" & LastRow))
vrnc = Application.WorksheetFunction.Var_P(Sheets("Storico_CSV").Range("S2:S" & LastRow))
Sheets("Storico_CSV").Range("H2") = avReturn
Sheets("Storico_CSV").Range("H3") = stDev
Sheets("Storico_CSV").Range("H4") = vrnc
End Sub