2012-07-30 207 views
2

我在Excel中存儲每個字符數爲1023的字符。稍後,我需要能夠搜索excel文件並查找值所在的行。我可以保證,我正在查找的字符串中只有一處出現在工作簿中的某處。Excel.Range.Find使用長度超過255個字符的字符串

目前我得到每次我嘗試搜索(由於255的查找功能長度限制)時間類型不匹配錯誤。當我用像「teststring」這樣簡短的東西替換我的搜索字符串時,它工作正常。我如何在Excel中搜索1023個字符的字符串?

回答

2

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 

Funny Search String

是的,我也假裝類型作爲我老闆走過的重要事情。我不認爲他被愚弄 - 因爲我只是把它弄糊塗在我的鍵盤上。

+0

我正在查找的值是唯一的ID,我需要匹配所有1023個字符。我可以得到前255個字符的所有匹配的位置,然後檢索值並搜索這些值,但這看起來效率非常低。我現在就用這個​​,但我希望有更優雅的東西。 – Brandon 2012-07-30 19:48:49

+0

如果它們完全一樣,那麼你可以忘記.find,只要檢查每個單元是否匹配missingItem。 。對我來說,查找更多的是爲了快速搜索特定的單詞 - 而不是檢查事物之間的等價關係。 – Stepan1010 2012-07-30 19:54:58

+0

看我上面的編輯。 – Stepan1010 2012-07-30 20:22:23

相關問題