2017-10-01 5 views
0
Function FunctionName(str) 

    Dim resultStr 
    Dim wordArr 
    wordArr = Array(Split(str, "_")) 

    For Each item In wordArr 
     resultStr = resultStr & UppercaseFirstLetter(item) 
    Next item 

    FunctionName = resultStr 

End Function 'FunctionName 

VBAの各ループについて上記を考慮してください。エラーが続きます。Illegal Assignment 'item'VBA - For Eachの不正な割り当て

注:UppercaseFirstLetterは、指定された単語の最初の文字を大文字に変換する関数です。

私はVBAを初めてお使いです。アドバイスをいただければ幸いです。

+0

'item'はオブジェクトであり、関数にはおそらく' string'が必要です。 @GSergが提案したことを試してください。 – Tehscript

+0

詳しいことはできますか?わかりません。 – NewbieCoder

+0

VBAで指定された単語の最初の文字を大文字に変換する関数は 'StrConv(text、vbProperCase)'です。このエラーに関しては、 'Split'によって返された配列を' Array'によって作成された別の配列に無駄にラップするとしても、示されたコードにはありません。このコードが与えられると、エラー13の型の不一致が発生しているはずです。 – GSerg

答えて

1

ここにあります。

Option Explicit 
Sub test() 
    Debug.Print FunctionName("test1_test2") 
End Sub 'Test 
Function FunctionName(str) 

    Dim resultStr As String 
    Dim wordArr() As String 
    Dim item As Variant 
    wordArr = Split(str, "_") 

    For Each item In wordArr 
     resultStr = resultStr & UppercaseFirstLetter(item) 
    Next item 

    FunctionName = resultStr 

End Function 'FunctionName 
Function UppercaseFirstLetter(item As Variant) 
    UppercaseFirstLetter = UCase(Mid(item, 1, 1)) & Mid(item, 2) 
End Function 'UppercaseFirstLetter 
関連する問題