在VBA中引用包含“%”的单元格值

时间:2014-02-26 21:10:08

标签: string excel vba

我正在尝试在VBA中引用包含字符“%”作为其一部分的单元格,这会导致类型不匹配错误。我需要字符在那里,因为稍后将值复制到SQL查询。有没有办法让VBA获得该单元格的值而不会给我错误?

以下是代码:

  

Dim namevalue As Variant
  namevalue = Sheets(“Sheetname”)。范围(“N4”)。值
  使用ActiveWorkbook.Connections(“连接”)。OLEDBConnection

          .BackgroundQuery = True

          .CommandText = Array(_
          “SELECT”“COMPANY”“。”“PRIMARY_LONG_COMPANY_NAME”“WHERE”“COMPANY”“。”“PRIMARY_LONG_COMPANY_NAME”“喜欢”& namevalue)

      以。结束       使用ActiveWorkbook.Connections(“连接”)
      以

结束       ActiveWorkbook.Connections( “连线”)。刷新
  结束子

细胞N4的含量如下:

  

('%CROSSJECT%'或COMPANY.PRIMARY_LONG_COMPANY_NAME喜欢'%FLUOR CORP%'或COMPANY.PRIMARY_LONG_COMPANY_NAME喜欢'%HITIT HOLD%'或COMPANY.PRIMARY_LONG_COMPANY_NAME喜欢'%LARAMIDE R%'或COMPANY.PRIMARY_LONG_COMPANY_NAME喜欢'%LARAMIDE R%'或COMPANY.PRIMARY_LONG_COMPANY_NAME喜欢'%MAGNUM ENT%'))

更新:我认为错误不再与角色有关,但错误仍然存​​在。

我感谢任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

要引用单元格,您需要找到它。试试这个小宏:

Sub PoundFinder()
    Dim Pound As String
    Pound = "#"
    For Each r In ActiveSheet.UsedRange
        v = r.Text
        If InStr(1, v, Pound) > 0 Then
            MsgBox "Pound found in cell " & r.Address
            Exit Sub
        End If
    Next r
    MsgBox Pound & " not found"
End Sub