我是韩国数据分析师。我使用韩文版Windows 7和操作系统。
我在 VBA (Excel) 中遇到一些关于 instr
的问题。
在正常情况下,
instr
在“C2”处生成准确的数字,指示“A2”字符串处的起始点编号
即使是韩语、日语(平假名)也没有问题。 请原谅我无法提供更多 sample 因为我在这个网站上没有足够的声誉点。
但是,当我使用日文片假名时,总是会出现错误 错误消息如下。
'7' runtime error has occurred, Not enough memory
我对这唯一的一个错误感到尴尬 并试图解决这个问题, 但还是不知道怎么办。
我希望有人给我好的意见和解决方案。
谢谢
最佳答案
我无法在我的英文 Excel 2013/Win7 中复制此问题。
但是,我以前在旧的 Excel 版本中见过这样的问题,最有可能的是,下面的方法应该可以工作。
- 请将函数“InStr”更改为“InStrb”,看看是否有效
Sub instr() Range("C2") = InStrB(1, Range("A2"), Range("B2"), 1) End Sub
- 或者您可能想在调用 InStr 函数之前先执行 StrConv(string, vbUnicode)。
Sub instr() Range("C2") = InStr(1, StrConv(Range("A2"), vbUnicode), StrConv(Range("B2"), vbUnicode), 1) End Sub
无论您选择哪种方法,如果输入字符串不是半角字符,则返回位置值需要除以二。 (最近的excel已经没有半角字符了,估计你的excel太旧了,升级是最好的选择。)
关于vba - [VBA][excel]在 'Japanese - Katakana'中使用 'inStr'时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152417/