我必須在Excel列中搜索多個文本字符串(一次一個字符串)。該專欄已經獲得了大約20萬的值。因此,如果我搜索該列50次,則需要很長時間才能在VBA中使用「查找」命令。搜索變量中的文本字符串
我正在尋找一種替代方法來使此搜索更高效。大概是,在變量中讀一次這個列,然後在這個變量中搜索我想要的文本字符串。使用這種方法,我希望搜索速度比在Excel表格列中搜索更快。
請建議最佳選擇來完成它。
任何幫助,高度讚賞。
我必須在Excel列中搜索多個文本字符串(一次一個字符串)。該專欄已經獲得了大約20萬的值。因此,如果我搜索該列50次,則需要很長時間才能在VBA中使用「查找」命令。搜索變量中的文本字符串
我正在尋找一種替代方法來使此搜索更高效。大概是,在變量中讀一次這個列,然後在這個變量中搜索我想要的文本字符串。使用這種方法,我希望搜索速度比在Excel表格列中搜索更快。
請建議最佳選擇來完成它。
任何幫助,高度讚賞。
下面是一些小開頭: 打開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
範圍,對其中的價值是可以找到的行。
代碼未完成。您必須考慮以下內容:
Plot
,並在我們有Plotnik
的單元格中,我們想以某種方式得到它。謝謝Vityata。我試過這種方法,它工作正常。但是,我目前使用的INSTR功能對我的要求更加高效。 – Masood
您是第一次將值讀入數組中嗎?張貼一些代碼。 – User632716
到目前爲止你的代碼是什麼? –
我只是使用「查找」功能在Excel工作表中搜索一個字符串。當您搜索數以千計的不同字符串的單元格時,這會有點慢。這就是爲什麼我想使用一個變量來加載所有的列,並在其中進行有效的搜索。我已經使用'INSTR'功能,並且與時代有顯着不同。 – Masood