2017-07-19 53 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

    你说得对,我完全忘了。如果有人发出类似的错误,我会使用您的更正来修改我的评论,以使其更加明显。 –