在变量中搜索文本字符串

时间:2017-01-30 09:18:06

标签: vba

我必须在Excel列中搜索多个文本字符串(一次一个字符串)。此列有大约200K值。因此,如果我搜索此列50次,则需要很长时间才能使用"查找" VBA中的命令。

我正在寻找另一种方法来提高搜索效率。也许,在变量中读取此列一次,然后在此变量中搜索我想要的文本字符串。使用这种方法,我希望搜索速度比在Excel工作表列中搜索更快。

请建议完成它的最佳选择。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

以下是一些小事: 打开Excel文件并在范围E10:E34中写入一些值。确保其中一个值为Plot。 然后运行代码:

Option Explicit

Sub TestMe()

    Dim varArray        As Variant
    Dim strToSearch     As String: strToSearch = "Plot"
    Dim varVal          As Variant
    Dim lngCounter      As Long : lngCounter

    varArray = Range("E10:E34")

    For Each varVal In varArray
        If varVal = strToSearch Then
            Debug.Print varVal
            Debug.Print lngCounter
            Exit For
        End If
    Next varVal
    lngCounter = lngCounter + 1
End Sub

它将为您提供E10:E34范围的行,在该行上可以找到该值。

代码未完成。你必须考虑以下几点:

  1. 如果我们的价值超过一次,会发生什么情况;
  2. 如果我们想要包含多列的数组,会发生什么情况;
  3. 如果范围应该灵活,会发生什么;
  4. 如果我们只知道单元格中值的开头会发生什么,但我们仍然想要它 - 例如值为Plot,在单元格中我们有Plotnik,我们想以某种方式得到它。
  5. 还有别的。