Excel 用の Bloomberg アドインで発生している問題を解決しようとしています。毎日、500 株以上の過去 31 日間の価格データを入力しています。
$A$K3 = "ACE US EQUITY" $AL$3 = "=BDH(AK3,"PX_LAST",$D$1,$C$1,"DTS=h","dir=h")" $C$1 = " =WORKDAY(TODAY(),0)" $D$1 = "=BAddPeriods(C1,"NumberOfPeriods=-31","Per=wd","CDR=#A")"
$AL$3:$BQ$3 で 31 日間の価格が発生するはずです。
Bloomberg 実行可能ファイルが実行されていなくても、Bloomberg DDE セッションが 3 日間開いたままになるため、ワークブックを開いたままにします。
問題がなく、翌日出勤すると、データが 1 日進んでいる場合があります。また、多くのデータが欠落しているため、各 $AL$_ フィールドを選択して更新する必要がある場合もあります。これに関する問題は、何らかの理由で更新が同期的に行われていることであり、これが DDE 接続や Excel に大混乱を引き起こしていると思います。その結果、更新が遅くなる/更新されない。また、ワークシート全体を更新すると、いくつかの数式が静的データで上書きされます!
私がやりたいことは、次のマクロを作成することです。
1) $AL$ :$BQ $ および $BS$ :$CX $のすべてのデータを消去します
2) $AL$_ = "=BDH(AK$_,"PX_LAST",$D$1,$C$1,"DTS=h","dir=h")" の値を設定します
3) $AL$(+1):$BQ$(+1) に移動する前に、データが $AL$ :$BQ$に入力されるまで待ちます。$AM$_ に値がある場合、その行にデータが取り込まれている可能性があります。
4) $AL$ :$BQ$が終了したら、$BS$ :$CX$に対して同じことを行います。
ブルームバーグのサポートがこの要求を満たすのを 1 か月以上待っていますが、結果はありません。
私はこれを実行するのに十分な経験がありません。
レコーダーを使用して作成した以下の非常に少量のコードがあります。
Sub PopulateData()
'
' PopulateData Macro
'
'
Range("AL2:BQ2").Select
Selection.ClearContents
Range("AL2").Select
ActiveCell.FormulaR1C1 = _
"=BDH(RC[-1],""PX_LAST"",R1C4,R1C3,""DTS=h"",""dir=h"")"
Range("AL2").Select
End Sub
記録中に更新ボタンを選択しましたが、このアクションは記録されませんでした。ご覧いただきありがとうございます。