vba - [VBA][excel]在 'Japanese - Katakana'中使用 'inStr'时发生错误

标签 vba excel

我是韩国数据分析师。我使用韩文版Windows 7和操作系统。

我在 VBA (Excel) 中遇到一些关于 instr 的问题。 在正常情况下, instr 在“C2”处生成准确的数字,指示“A2”字符串处的起始点编号

这是正常样本: Alphabet

即使是韩语、日语(平假名)也没有问题。 请原谅我无法提供更多 sample 因为我在这个网站上没有足够的声誉点。

但是,当我使用日文片假名时,总是会出现错误 错误消息如下。

'7' runtime error has occurred, Not enough memory

引用这个示例: The error case - Japanese - (Katakana)

我对这唯一的一个错误感到尴尬 并试图解决这个问题, 但还是不知道怎么办。

我希望有人给我好的意见和解决方案。
谢谢

最佳答案

我无法在我的英文 Excel 2013/Win7 中复制此问题。

但是,我以前在旧的 Excel 版本中见过这样的问题,最有可能的是,下面的方法应该可以工作。

  1. 请将函数“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/

    相关文章:

    vba - 将文件大小从字节转换为 Kb 或 Mb

    python - 从外部程序粘贴到 Excel 文件中

    vba - 在 Excel 中移动不连续的单元格内容

    excel - 如何获取日期范围之间的天数

    excel - Excel VBA 中需要的相对单元格地址

    vba - 循环遍历 Excel 工作表中的所有命名范围

    excel - 来自列号的vba列地址

    vba - 仅查找样式为 "Heading 1"的文本(Range.Find 以匹配样式)

    arrays - 如何将 3 维值传递给 vba 并使用它

    vba - Excel - 选择多个单元格时在 VBA 中键入不匹配错误 13