首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA - Split和IsError函数

VBA - Split和IsError函数
EN

Stack Overflow用户
提问于 2016-10-19 02:23:29
回答 2查看 972关注 0票数 0

我正在纠结于VBA代码。我在做一个身份证代码生成器程序。其中一个过程涉及按单词拆分公司名称,并取前两个单词。Split已经被证明在这个任务中很有用,然而,当处理少于2个单词的公司名称时,我得到了一个#值!错误。

我试图修复它的一种方法是使用ISERROR函数,所以如果我得到任何错误,它会用一个字符来代替它,比如"X“。

总而言之,我尝试的是只捕获名称的第二个单词,如果没有第二个单词,只显示"X“。

代码语言:javascript
复制
Public Function idcode_2(text As String) As String
Dim Arr_text As Variant
Dim rz_x, rz2, code As String
Dim i As Integer
Dim c
Arr_text = Split(text, " ", 3)
rz2 = Arr_text(1)
If IsError(rz2) = True Then
    rz2 = "X"
   Else
    rz2 = rz2 & ""
End If
    idcode_2 = rz2
End Function

我在Excel中使用VBA - Microsoft Office Professional Plus 2013。

EN

回答 2

Stack Overflow用户

发布于 2016-10-19 02:30:05

Arr_text将是一个从零开始的数组-- UBound(Arr_text)将给出该数组的上界(如果一项为零,如果两项为1,依此类推)

代码语言:javascript
复制
Public Function idcode_2(text As String) As String

    Dim Arr_text As Variant, rz2

    Arr_text = Split(text, " ", 3)

    If UBound(Arr_text ) > 0 Then
        rz2 = Arr_text(1)
    Else
        rz2 = "x"
    End If

    idcode_2 = rz2

End Function
票数 2
EN

Stack Overflow用户

发布于 2016-10-19 04:02:35

代码语言:javascript
复制
Public Function idcode_2(text As String) As String
    If Instr(text, " ") > 0 Then
        idcode = Split(text)(1)
    Else
        idcode = "x"
    End If
End Function
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40115400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档