2017-08-25 89 views
0

我試圖用這個代碼來引入一個公式從A2到我的數據庫的結尾在兩個單元的步驟。VBA與Bloomberg函數在LOOP的問題

Sub addbdh() 

Dim i As Integer 
Dim n As Integer 

Range("A3").Select 
Range(Selection, Selection.End(xlToRight)).Select 

n = Selection.Count 

For i = 1 To n 

Cells(3, i * 2 - 1).Formula = "BDH(""A"" & "i * 2 - 1", "A1", "B1, "hoy()")" 

Next i 

End Sub 

的問題是,我的指令得到一個錯誤:

Cells(3, i * 2 - 1).Formula = "BDH(""A"" & "i * 2 - 1", ""A1"", ""B1"", "Today()")" 

特別是在「我* 2 - 1」的一部分,我得到一個Excel MSGBOX它說「預期語句的結束「(西班牙語:‘SE esperaba:鰭德拉instrucción’

¿誰能幫我找到的代碼錯誤

坦克你這麼多

+0

在Excel單元格的公式開始於一個 「= ...」 –

+0

而你濫用' 「」' –

+0

嘗試 「= BDH(」 「A」 「」 &我* 2 - 1&「,」「A1」「,」「B1」「,TODAY())」 –

回答

0

一般來說,.Formula顯示真正的英文公式。無論你的語言是什麼。因此,Hoy()應改爲Today()

在一般情況下,嘗試這樣的:

Cells(3, i * 2 - 1).Formula = "=BDH(A" & i * 2 - 1 & ", A1, B1, Today())" 

在一般情況下,當你有一個問題,像「如何工作的Excel公式轉換爲VBA」執行以下操作:

  1. 選擇Excel中的工作公式。
  2. 運行以下代碼。
  3. 從立即窗口中取出公式,並修改它以放置變量i * 2 - 1

Public Sub PrintMeUsefulFormula() 

    Dim strFormula As String 
    Dim strParenth As String 

    strParenth = """" 

    strFormula = Selection.Formula 
    strFormula = Replace(strFormula, """", """""") 

    strFormula = strParenth & strFormula & strParenth 
    Debug.Print strFormula 

End Sub 
+0

我想在第一個'&'前面還有''',可能兩個''今天' –

+0

:'Cells(3,i * 2 - 1).Formula =「= BDH(」「A」「&i * 2 - 1,」「A1」「,」「B1」「,Today())'我不會再犯這個錯誤了,而是我得到一個錯誤的公式,在我的單元格里有:= BDH(「A」&i * 2 - 1;「A1」;「B1」; HOY()), – Mauro

+0

@毛羅 - 檢查編輯,它應該工作,只有'''''''。 – Vityata