分享

VBA基础入门(45)日本語全半角混在字符串的长如何获取?

 asaser 2022-03-28

图片


图片

图片

Shift_JIS码制下长度分别为3,10,18。

图片

一般获取字符串的长度,可能首先都会想到Len函数,我们先看一下Len函数获取的字符串长度是多少。

1

Len

Sub GetLength()Sheets("全半角混在").Range("B2") = Len(Sheets("全半角混在").Range("A2"))Sheets("全半角混在").Range("B3") = Len(Sheets("全半角混在").Range("A3"))Sheets("全半角混在").Range("B4") = Len(Sheets("全半角混在").Range("A4"))End Sub

图片

半角的长度没问题,但是全角和全半角混在不对。

无论是全角还是半角都会被当作1位长来计算所以结果是3,5,13。

2

LenB

Sub GetLength()Sheets("全半角混在").Range("B2") = LenB(Sheets("全半角混在").Range("A2"))Sheets("全半角混在").Range("B3") = LenB(Sheets("全半角混在").Range("A3"))Sheets("全半角混在").Range("B4") = LenB(Sheets("全半角混在").Range("A4"))End Sub

图片

全角长度没问题,半角和全半角混在不对。

无论是全角还是半角都会被当作2位长来计算所以结果是6,10,26。

3

LenB + StrConv

Sub GetLength()Sheets("全半角混在").Range("B2") = LenB(StrConv(Sheets("全半角混在").Range("A2"), vbFromUnicode))Sheets("全半角混在").Range("B3") = LenB(StrConv(Sheets("全半角混在").Range("A3"), vbFromUnicode))Sheets("全半角混在").Range("B4") = LenB(StrConv(Sheets("全半角混在").Range("A4"), vbFromUnicode))End Sub

图片

这次获取的字符串长度没问题了,全角2位半角1位,分别是3,10,18。

先用StrConv函数把字符串转换成Shift_JIS,再获取字符串长度。

图片


图片

图片

                                     

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多