У меня есть лист Excel с формулами ~ 300 000 BDH для загрузки цен на ценные бумаги.
Я хочу
- открыть файл и получить все цены
- вставитьих как значения
- сохраните и закройте файл.
Однако я не знаю, когда Excel завершит заполнение данных Bloomberg, поэтому трудно определить время для выполнения 2) и 3).
Я написал VBA, но не уверен, работает ли он:
В Module1
Sub CheckFormulas()
If Application.CalculationState = xlDone Then
With Worksheets("Sheet1").UsedRange
.Value = .Value
End With
Else
Application.OnTime Now + TimeValue("00:30:00"), "CheckFormulas"
ActiveWorkbook.Close Savechanges:=True
End If
End Sub
В 'ThisWorkbook'
Private Sub Run()
Call CheckFormulas
End Sub
Таким образом, теоретически это должно работать так:
- Я открываю файл
- код проверяет каждые 30 минут, выполняются ли все формулы BDH
- , если онии вставьте в качестве значений, сохраните и закройте 4) если нет, проверьте еще раз через 30 минут.
Мне интересно, является ли это лучшим способом для достижения моей цели, и хочу знать, если Application.CalculationState
совместим или работает с формулами Блумберга BDH?