1

VBAでデータフィルタリングスクリプトを作成しようとしていますが、別の関数を使用して作成することをお勧めします。したがって、次のコードを取得しました。

Sub checkFormat()
Dim cont As String
cont = "21-345"
cont = funkcja(cont)
check = cont Like "##-###"

Debug.Print check & " vartype: " & VarType(cont)

End Sub

Private Function funkcja(Param1 As String)
If ((Left(Param1, 1) = " ") Or (Right(Param1, 1) = " ")) Then
    Param1 = Trim(Param1)
    Debug.Print "Cut"
Else
    Debug.Print "Nothing to cut"
End If
Debug.Print "Returned: """ & Param1 & """" & " vartype: " & VarType(Param1)
End Function

問題は、checkどの値を割り当てても、変数がFalseを返すことです。ただし、その行をコメントアウトするとcont=funkcja(cont)、Like関数が正常に機能し始めます。funkcjaLikeがFalseを返すように、文字列に対してどの関数が実行されるかを誰かに教えてもらえますか?変数の型を確認しましたが、常に文字列に設定されています...

4

1 に答える 1

5

funkcjaあなたがそれを返すように言わなかったので、常に「」を返すのでParam1

Private Function funkcja(Param1 As String) as string '//type it
If ((Left(Param1, 1) = " ") Or (Right(Param1, 1) = " ")) Then
    Param1 = Trim(Param1)
    Debug.Print "Cut"
Else
    Debug.Print "Nothing to cut"
End If
'//
'//set the return value
funkcja = param1 
'//
'//
Debug.Print "Returned: """ & Param1 & """" & " vartype: " & VarType(Param1)
End Function
于 2012-11-06T12:53:12.480 に答える