VBA - 拆分和IsError函数

时间:2016-10-18 18:23:29

标签: vba excel-vba split excel

我正在努力使用VBA代码。我正在研究ID代码生成器程序。其中一个过程涉及按字词拆分公司名称,并采用前两个字。事实证明,斯普利特在这项任务中很有用,但在处理短于2个字的公司名称时,我有一个#VALUE!错误。

我尝试修复它的一种方法是使用ISERROR函数,所以如果我收到任何错误,它会用一个字符替换它,比如“X”。

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

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。

2 个答案:

答案 0 :(得分:2)

Arr_text将是一个从零开始的数组 - UBound(Arr_text)将为您提供该数组的上限(如果是一个项,则为零,如果有两个项,则为零)

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

答案 1 :(得分:2)

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