2017-06-09 18 views
0

特定のインデックスの文字列配列が初期化されていないかどうかを確認する方法が不思議です。VBAチェックインデックスの文字列配列は何もありません

ファイルパスのファイル拡張子を決定するのにSplit関数を使用していますが、拡張子が含まれないことがあります。私のデリミタは "。"なので、エクステンションが提供されている場合のみ、配列インデックス1に値があります。

私はIs Nothing、 ""、IsEmpty、およびvbNullStringは成功しません。

また、配列のサイズを明示的に宣言しましたが、Split関数の値に割り当てることで問題が発生しました。

次のように私のコードの抜粋は次のとおりです。

Dim filePath As String 
Dim stringArr() As String 

filePath = "C:\Users\Sarchwalk\Documents\fileName" 
stringArr() = Split(filePath, ".") 'Problem here if stringArr size has been declared 

If stringArr(1) = "" Then 'Error arises here 
    MsgBox "String array at index 1 is empty" 
End If 
+0

"If StringArr(1)=" ""の代わりに "If UBound(stringArr)= 0 Then"を試してください – duDE

答えて

0

使用UBOUND、

If Ubound(stringArr) = Lbound(stringArr) Then 
    MsgBox "String array at index 1 is empty" 
ElseIf stringArr(1) = "" Then 'Error arises here 
    MsgBox "String array at index 1 is empty" 
End If 

一つだけがある場合、UBOUNDはLBOUNDに等しくなります。そうでなければ、空の文字列もチェックします。

+0

素晴らしいです!ありがとう:) – Sarchwalk

関連する問題