【问题标题】:VBA - Split and IsError FunctionVBA - 拆分和 IsError 函数
【发布时间】:2016-10-18 18:23:29
【问题描述】:

我正在为 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。

【问题讨论】:

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

标签: vba excel split


【解决方案1】:

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

【讨论】:

    【解决方案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
    

    【讨论】:

    • @KevinRuiz,你通过了吗?
    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2016-12-04
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多