2017-07-19 74 views
0

大家好我有VBA一個問題,當我嘗試使用VLOOKUP公式是這樣的:如何使用VLOOKUP(公式)在VBA搜索字符串

Range("H21").Formula = "=VLOOKUP("cleared",'mortgage'!A2:F12,4,FALSE)" 

它不斷地說我清除了一部分」 「是一個語法錯誤。有人能告訴我如何處理?先謝謝你。

回答

3

雙引號:

Range("H21").Formula = "=VLOOKUP(""cleared"",'mortgage'!A2:F12,4,FALSE)" 
1

你VBE認爲清詞是不是你用雙引號事先終止它的字符串的一部分。然後你看起來是在之後立即開始一個新的字符串這個詞清零。

要在字符串中使用雙引號(又名語音引號),你需要他們加倍像這樣:

Range("H21").Formula = "=VLOOKUP(""cleared"",'mortgage'!A2:F12,4,FALSE)" 
+0

工作正常!謝謝:) –

0

或者另一種選擇:

  1. 編寫工作公式在Excel中。
  2. 使用公式 選擇單元格。
  3. 運行下面的代碼:

Sub TestMe 
    debug.print selection.formula 
End Sub 

  • 檢查即時窗口 - 這是使用的是在Excel中的公式。
  • 如果您想有用的公式,實際上你可以複製+粘貼到您的VBA代碼,使用:

  • Option Explicit 
    
    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 
    

  • 檢查立即窗口。
  • +1

    在這種情況下,根本沒有任何幫助,因爲返回的文本是'= VLOOKUP(「清除」,抵押!A2:F12,4,FALSE)' – CLR

    +0

    @CLR - 我知道我錯過了一些從幾個月前的這個答案 - https://stackoverflow.com/questions/43050331/formula-is-giving-error-when-i-add-text/43050563#43050563 – Vityata

    1

    使用單引號括起來清除(不工作)

    Range("H21").Formula = "=VLOOKUP('cleared','mortgage'!A2:F12,4,FALSE)" 
    

    編輯:更正由OP製成:

    的Excel僅在工作表名稱使用單引號,不表示字符串文字

    +0

    Excel只在表格名稱上使用單引號,而不是表示字符串文字。 –

    +0

    你說得對,我完全忘了。如果有人發出類似的錯誤,我會使用您的更正來修改我的評論,以使其更加明顯。 –