在循环内循环vba

时间:2016-11-28 03:21:30

标签: vba loops bloomberg

我试图创建一个可以为每个股权执行BDH bloomberg代码的电子表格,并且在每个股权ID中希望它通过所有标准,例如" PX_Last",VOL_90D, PX_BID等

基本上,我喜欢的理想输出是:

例如:

0665 HK Equity -> PX_Last, PX_BID, PX_ASK, VOL_90D, then, 
1098 HK Equity -> PX_Last, PX_BID, PX_ASK, VOL_90D, then, 

等。

以下是我最近为电子表格创建的代码。

非常感谢有关我的代码的任何见解!

For x = 1 To i
   If x = 1 Then
    equity = Worksheets(1).Cells(x + 2, 2)
    Worksheets(2).Cells(2, 2).Value = equity
        For y = 1 To j
            If y = 1 Then
                reutersticker = Worksheets(1).Cells(y + 2, 1)
                Worksheets(2).Cells(1, 2).Value = reutersticker   
                    For Z = 1 To k
                        If Z = 1 Then
                            LastPrice = Worksheets(1).Cells(Z + 1, 8)
                            Worksheets(2).Cells(3, 1).FormulaR1C1 = "=BDH(""" & equity & """," & LastPrice & ",""" & StartDate & """,""" & EndDate & """," & Weekdays & "," & Fill & ")"    
                        ElseIf Z > 1 Then
                            LastPrice = Worksheets(1).Cells(Z + 1, 8)
                            Worksheets(2).Cells(3, 1).Offset(, (2 * Z) - 2).FormulaR1C1 = "=BDH(""" & equity & """," & LastPrice & ",""" & StartDate & """,""" & EndDate & """," & Weekdays & "," & Fill & ")"
                        End If                      
                    Next Z                      
            ElseIf y > 1 Then             
                reutersticker = Worksheets(1).Cells(y + 2, 1)
                Worksheets(2).Cells(1, 2).Offset(, (4 * y) - 2).Value = reutersticker
            End If          
         Next y          
    ElseIf x > 1 Then    
       equity = Worksheets(1).Cells(x + 2, 2)        
       Worksheets(2).Cells(2, 2).Offset(, (8 * x) - 2).Value = equity
    End If 
  Next x  
End Sub

0 个答案:

没有答案