2016-10-18 8 views
0

私はVBAコードに苦しんでいます。私はIDコードジェネレータプログラムに取り組んでいます。プロセスの1つに、単語で分割し、最初の2つの単語を取ります。しかし、スプリットは、このようなタスクで有用であることが判明しました。しかし、2ワード未満の会社名を扱う場合、私は#VALUEを得ました!エラー。VBA - 分割とIsError関数

私はそれを修正しようとしましたが、ISERROR関数を使用していました。エラーが発生した場合、その文字を "X"と置き換えます。

要約すると、私がしようとしているのは、名前の2番目の単語だけをキャプチャし、2番目の単語がない場合は「X」と表示します。私はExcelでVBAを使用してい

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 

- マイクロソフトのOffice Professional Plusを2013年

+0

'Arr_text'は、ゼロベースの配列であろう - ' UBound関数(Arr_text)は 'あなたのその配列の上限を与える(ゼロ1つが項目、1つで2つのアイテムなど) –

答えて

2

Arr_textは、ゼロベースの配列になります - UBound関数(Arr_text)あなたはその配列の上限を与える(ゼロの場合を一つの項目、二つのアイテム、等場合は、1つ)

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 
+0

@KevinRuiz、yoあなたはそれを通りますか? – user3598756