У меня есть следующий код в VBA для подключения к терминалу Bloomberg:
Dim Blp As Long
Blp = DDEInitiate("Winblp", "bbk")
Call DDEExecute(Blp, "<Blp-1>" & "NAPMPMI" & "<INDEX>" & " DES<GO>")
Call DDETerminate(Blp)
Каждый раз, когда Excel зависает в части DDEInitiate (), и он работает только после перезагрузки компьютера или выхода из системы и повторного входа login.
Я попробовал следующее, и они не смогли решить эту проблему:
1). Отключите некоторые надстройки для Excel и COM. Я обнаружил, что активированные надстройки одинаковы, когда DDEInitiate работает и когда он перестает работать. Так что это не надстройки для Excel / COM, которые блокируют запуск DDEInitiate.
2). Убейте все каналы в начале кода, выполнив:
Dim i, ChannelNumber As Integer
For i = 1 To 1000
Application.DDETerminate (i) ' Closes all DDE links whose channels might be open
Next i
Что еще можно попробовать, и есть ли альтернативы DDE, которые могли бы отправлять подобные команды в bloomberg?