Это я усвоил трудным путем: Избегайте копирования / вставки, если это возможно! Копирование и вставка используют буфер обмена.Другие программы могут выполнять чтение / запись в буфер обмена во время работы вашего кода, что приведет к непредсказуемым непредсказуемым результатам на обоих концах.
В вашем конкретном случае копирование и вставка совершенно не нужны.Просто используйте =
.
For i = 1 To 2
'// Your stuff, which I won't touch:
Worksheets("Volatility").Cells(1, "B").Value _
= Worksheets("Volatility").Cells(i, "S").Value
Call mdlMain.ExtractData
Sheets.Add After:=Sheets(Sheets.Count)
'// The following single statement replaces everything else:
Sheets(Sheets.Count).Range("A11:D2330").Value _
= Sheets("Volatility").Range("A11:D2330").Value
'// Voilà. No copy, no paste, no trouble.
'// If you need the number format as well, then:
Sheets(Sheets.Count).Range("A11:D2330").NumberFormat_
= Sheets("Volatility").Range("A11:D2330").NumberFormat
Next i