2015-08-28 63 views
1

我在Ms Access環境中使用VBA來處理長字符串(原本存儲HTML的備註字段)。 通過Instr()定位後,我將位置置於Mid(vStr,vStartPos,vEndPos-vStartPos + 1)中以提取字符串,但輸出不匹配。我已經在即時窗口以及NotePad ++中仔細檢查了它。我可以說的是Instr()和NotePad ++給出了相同的計數結果,而Mid()則不同。 Mid()的結果在某些情況下比Instr()更早,而在其他情況下則是後者。我不知道原因,並且可以相信Mid()在處理與單字節和雙字節字符混合的長字符串時使用不同的機制或具有失敗(驚訝!)(但這在世界上是常見的,並會見之前沒有問題),可能還有一些特殊字符。Mid()不要在準確位置提取字符串

我相信我需要定製一個Mid()函數。任何想法如何有效地和有效地做到這一點?

+0

你能分享一個例子嗎? –

+0

我多次閱讀,我仍然無法理解*「Mid()的結果在某些情況下比Instr()的更早,而在其他情況下則是後者。」* - 注意[編輯]和改寫一下? –

+2

也許使用'MidB' –

回答

0

謝謝大家的回覆。在我用RegEx創建了一個自定義的Mid()後發現問題沒有改變,我發現了我犯的這個愚蠢的錯誤。 Instr()和Mid()沒有問題,但字符串在它們之間被不小心修改。所以現在應該關閉這個案子。