Mid()不会提取准确位置的字符串

时间:2015-08-28 02:24:03

标签: vba

我在Ms Access环境中使用VBA来处理长字符串(最初存储HTML的备忘录字段)。 在通过Instr()定位后,我将位置放入Mid(vStr,vStartPos,vEndPos-vStartPos + 1)以提取字符串,但输出不匹配。我已经在即时窗口中仔细检查了这个,以及NotePad ++。我可以说Instr()和NotePad ++给出了相同的计数结果,而Mid()是不同的。 Mid()的结果在某些情况下比Instr()更好,在其他情况下是后者。我不知道原因,并且可以相信Mid()使用不同的机制或者在处理与单字节和双字节字符混合的长字符串时有失败(惊讶!)(但这在世界上很常见,并且之前没有遇到任何问题),可能还有一些特殊的角色。

我相信我需要自定义一个Mid()函数。知道如何有效和有效地做到这一点吗?

1 个答案:

答案 0 :(得分:0)

感谢大家的回复。在我通过RegEx创建自定义Mid()并发现问题没有变化之后,我发现了我犯的愚蠢错误。 Instr()和Mid()没有问题,但字符串在它们之间被不小心修改。所以这个案子现在应该关闭。