2016-05-06 13 views
0

Ich bekomme einen zufälligen Laufzeitfehler beim Versuch, 4 Felder für eine Liste von Aktien zurück zu bekommen. Der Aufruf schlägt bei zufälligen Beständen fehl, und die Änderung der abonnierten Felder hat keinen Unterschied gemacht. Dies ist der detaillierte Fehlertext:Laufzeit Ausnahme bei Verwendung von Bloomberg BLPSubscribe in VBA/Excel

Laufzeitfehler ‚-2147467259 (80004005) # N/A Fld

Und dies ist der Code.

Dim bbgdata As new BLP_DATA_CTRLLib.BlpData 
bbgdata.BLPSubscribe(sec, Array("PX LAST", "CUR_MKT_CAP", "3MTH_IMPVOL_100.0%MNY_DF", "VOLUME_AVG_90D")) 
+0

# N/A Fld bedeutet, dass man von dem Feld für einen (oder alle) die gegebene Wertpapiere, die nicht gültig ist. Sie können eine BDP-Formel in Excel mit den gleichen Werten versuchen, um zu sehen, welcher Ticker/welches Feld das Problem ist. – assylias

+0

@assylias Aufruf mit demselben Datensatz funktioniert nach dem Neustart meiner vba-Anwendung. Ich packte meine Anrufe und der Fehler ist nicht so zeitweilig. Ich bekomme denselben Fehler, wenn ich es versuche, ohne mich in die BLP-API einzuloggen. – frostbite

+0

Haben Sie HELP HELP gefragt? – assylias

Antwort

0

Fix war, die Ergebnisse auf ein Blatt zu schreiben, anstatt es in Objekte zu cachen.

bbgdata = bbgDataControl.BLPSubscribe(seclist, Array("PX_CLOSE_1D", "PX LAST", "CUR_MKT_CAP", "3MTH_IMPVOL_100.0%MNY_DF", "VOLUME_AVG_90D")) 
dataSheet.Range("BBG").Resize(UBound(bbgdata) + 1, UBound(bbgdata, 2) + 1) = bbgdata 

Bisher setzte Daten in Objekten wie ich tat:

For i = 0 To ub 
    Dim bbgData as new BBGData 
    bbgData.lastClose = bbgdata(i,0) 'etc. 
next i