Pergunta : Função de Excel VBA Bloomberg

Im que tentam escrever um macro simples de modo que o código possa colar a fórmula do bloomberg BDS na folha. Tudo trabalha muito bem mas quando eu abro os xls no serviço adicional do bloomberg primam, eu tenho que pressionar o F2 e entrá-lo em cada pilha antes da fórmula de BDS ativada para dados da transferência. Qualquer um sabe resolver este problema? o

do

Sub Macro1 () ActiveSheet.Name = “Result1 " o
para i = 1 a 51

cobre (“cano principal”). Escala de Select
(“D” & 13 + i). Folhas de Select
Selection.Copy
(“Result1”). Escala de Select
(“A1”). Pilhas de Select
(1, 5 * (i - 1) + 1). Pasta do
ActiveSheet.Paste
Selection.PasteSpecial de Select
: =xlPasteValues, operação: =xlNone, _
de SkipBlanks: O =False, transpor: escala do
do
do =False
(“A2”). Pilhas de Select
(2, 5 * (i - 1) + 1). Select
ActiveCell.FormulaR1C1 = escala do

de “OPT_CHAIN " (“A3”). Pilhas de Select
(3, 5 * (i - 1) + 1). Select
ActiveCell.FormulaR1C1 = do “escala seguinte do
do

do
Sub Macro2 de Sub
do fim do i
do
do
=BDS (R1C, R2C) “() (“B2”). Select
ActiveCell.FormulaR1C1 = escala do
do
de “PX_MID " (“B3”). Select
ActiveCell.FormulaR1C1 = do “escala do
=BDP (R [0] C [- 1], R2C) “(“B3”). Escala de Select
Selection.Copy
(“B4: B2002”). Escala de Select
ActiveSheet.Paste
(“C2”). Select
ActiveCell.FormulaR1C1 = escala do
do “VOLUME " (“C3”). Select
ActiveCell.FormulaR1C1 = do “escala do
=BDP (R [0] C [- 2], R2C) “(“C3”). Destino de Select
Selection.AutoFill: =Range (“C3: Escala do
de C2002”) (“D2”). Select
ActiveCell.FormulaR1C1 = escala do
de “OPT_DELTA " (“D3”). Select
ActiveCell.FormulaR1C1 = do “escala do
=BDP (R [0] C [- 3], R2C) “(“D3”). Destino de Select
Selection.AutoFill: =Range (“D3: Escala do
de D2002”) (“E2”). Select
ActiveCell.FormulaR1C1 = escala do
de “OPEN_INT " (“E3”). Select
ActiveCell.FormulaR1C1 = do “escala do
=BDP (R [0] C [- 4], R2C) “(“E3”). Destino de Select
Selection.AutoFill: =Range (“E3: Escala do
de E2002”) (“B2: E2”). Escala de Select
(seleção, Selection.End (xlDown)). Select
Application.CutCopyMode = False
Selection.Copy
para j = 1 às pilhas de 49
(2, 5 * j + 2). Extremidade seguinte Sub
do j
de Select
ActiveSheet.Paste
class= do

Resposta : Função de Excel VBA Bloomberg

y338,

O código abaixo é uma edição encurtada do que você forneceu. Não há nenhuma necessidade de usar “seleto” em VBA, em lugar de atribui simplesmente valores diretamente ao destino required.

Eu penso que a razão você é tem problemas é que você não começ uma referência ao Bloomberg Add-in em seu código de VBA. Você precisará qualquer outra coisa semelhante em seu macro de VBA:

Application.AddIns.Add “add-in_filename aqui”

Ou certificar-se mais simplesmente de que você tem no menu principal de Excel, ido às ferramentas/ins e verific/tiquetaqueou o “Bloomberg” add-in.

Patrick
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
Macro1 secundários ()
Escurecer i como por muito tempo
    Para i = 1 a 51
        Folhas (“cano principal”). Pilhas (i + 13, “D”). Cópia
        Com folhas (“Result1”)
            . _ Das pilhas (1, 5 * (i - 1) + 1) .PasteSpecial
                Pasta: =xlPasteValues, operação: =xlNone, _
                SkipBlanks: O =False, transpor: =False
            . Pilhas (2, 5 * (i - 1) + 1) = “OPT_CHAIN”
            . Pilhas (3, 5 * (i - 1) + 1) .FormulaR1C1 = “=BDS (R1C, R2C)”
        Extremidade com
    Em seguida i
Submarino da extremidade
   
Macro2 secundário ()
Sourcerange não ofuscante como a escala
Fillrange não ofuscante como a escala
J não ofuscante como por muito tempo
   
Com folhas (“Result1”) 'corrigir o nome da folha para serir
    . Escala (“B2”) = “PX_MID”
    . Escala (“B3”) .FormulaR1C1 = “=BDP (R [0] C [- 1], R2C)”
    . Escala (“B3”). Cópia. Escala (“B4: B2002”)
    . Escala (“C2”) = “VOLUME”
    . Escala (“C3”) .FormulaR1C1 = “=BDP (R [0] C [- 2], R2C)”
    . Escala (“C3”). Cópia. Escala (“C3: C2002”)
    . Escala (“D2”) = “OPT_DELTA”
    . Escala (“D3”) .FormulaR1C1 = “=BDP (R [0] C [- 3], R2C)”
    . Escala (“D3”). Cópia. Escala (“D3: D2002”)
    . Escala (“E2”) = “OPEN_INT”
    . Escala (“E3”) .FormulaR1C1 = “=BDP (R [0] C [- 4], R2C)”
    . Escala (“E3”). Cópia. Escala (“E3: E2002”)
    . Escala (“B2: E2”). Seleto
    . Escala (seleção, Selection.End (xlDown)). Seleto
    Application.CutCopyMode = falso
    Selection.Copy
    Para j = 1 a 49
        Pilhas (2, 5 * j + 2). Seleto
        ActiveSheet.Paste
    J seguinte
Extremidade com

Submarino da extremidade
Outras soluções  
 
programming4us programming4us