我在Excel中存儲每個字符數爲1023的字符。稍後,我需要能夠搜索excel文件並查找值所在的行。我可以保證,我正在查找的字符串中只有一處出現在工作簿中的某處。Excel.Range.Find使用長度超過255個字符的字符串
目前我得到每次我嘗試搜索(由於255的查找功能長度限制)時間類型不匹配錯誤。當我用像「teststring」這樣簡短的東西替換我的搜索字符串時,它工作正常。我如何在Excel中搜索1023個字符的字符串?
我在Excel中存儲每個字符數爲1023的字符。稍後,我需要能夠搜索excel文件並查找值所在的行。我可以保證,我正在查找的字符串中只有一處出現在工作簿中的某處。Excel.Range.Find使用長度超過255個字符的字符串
目前我得到每次我嘗試搜索(由於255的查找功能長度限制)時間類型不匹配錯誤。當我用像「teststring」這樣簡短的東西替換我的搜索字符串時,它工作正常。我如何在Excel中搜索1023個字符的字符串?
http://www.vbaexpress.com/forum/archive/index.php/t-9179.html
總之,如果您的所有字符串都爲前255個字符獨一無二的,你不必擔心休息。
你只需要你在其上執行前發現截斷字串:
missingItem = Left(missingItem,255)
或者:
missingItem = Right (missingItem,255)
否則,如果有前255個字符的很多重複,你可以將字符串除以255 - 然後舍入 - 然後將原始字符串拆分爲單獨的字符串,單獨搜索它們 - 對您有幫助嗎?
編輯:
Otherise,這裏是你如何檢查字符串等價於一個範圍內的每個單元格: http://www.vbaexpress.com/kb/getarticle.php?kb_id=167
Sub FindIt()
Dim Cell As Range
Dim SearchString As String
For Each Cell In Range("A1:D500")
If Cell.Value = "dqwlokjdowqijowqijdoinowiqhdoiwqiophiruegnqpiunrgpiuqgnrgkjffndskfiougpiodghiudhfgtothisansdfldkjflsdffjlksdjflksjfdoiejwfoiwjeoinfoinewoifjwoiejfoiwejfoiwejfoijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjwerkjwelkfjwelkjflkwejlfkjwelkjflwkjeflknweoifnoweinfoinewfoinoifwnwoienfoinweoddddddddddddddddddddddddddddddddddddddddfinwoioiefldkjsfoijoneiojfoijfewwefweeeeeeeeeeeefwef" Then '<< use "Like" for wildcards in If-Then statements
MsgBox "An ''it'' was found at " & Cell.Address & " (" & Cell & ")"
End If
Next Cell
End Sub
是的,我也假裝類型作爲我老闆走過的重要事情。我不認爲他被愚弄 - 因爲我只是把它弄糊塗在我的鍵盤上。
我正在查找的值是唯一的ID,我需要匹配所有1023個字符。我可以得到前255個字符的所有匹配的位置,然後檢索值並搜索這些值,但這看起來效率非常低。我現在就用這個,但我希望有更優雅的東西。 – Brandon 2012-07-30 19:48:49
如果它們完全一樣,那麼你可以忘記.find,只要檢查每個單元是否匹配missingItem。 。對我來說,查找更多的是爲了快速搜索特定的單詞 - 而不是檢查事物之間的等價關係。 – Stepan1010 2012-07-30 19:54:58
看我上面的編輯。 – Stepan1010 2012-07-30 20:22:23