2017-06-29 18 views
0
Function GetPath() As String 

Dim sFilepath As String 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

sFilepath = GetFolder() 

If sFilepath = "" Then 
    MsgBox ("Invalid File Path! Select a File Path for the Folders.") 
End If 

End Function 

これは非常識です。私がやりたいすべてが値、文字列を返すですが、私は、関数の最後でVBA、関数内の文字列を返す、無限を返す

Return sFilepath 

を入力するとき、私は、コンパイラのエラーを取得します。私はJavaからVBAに移行しています。これは私をイライラして困らせます。インターネットの達人、なぜ私はそのReturnステートメントを挿入できないのですか?それを正しく行うにはどうすればいいですか?

+0

戻るVBAにはキーワードではありません。 [FunctionName] = xxxを使用します。ブライアンの答えを参照してください。あなたがVBAと.NET(多くのうちの1つ)の間を移動する場合、それはあなたが住んでいなければならない頭痛です。 –

+4

@GordonBell技術的にはそれがキーワードです。それは、ゴートジャンプしてサブルーチンにジャンプし、その後に続く命令にジャンプするために、敬称された 'GoSub'キーワードを手にして作業することを意味します。すなわち、VBAの秘密スパゲティソースレシピの一部として「戻る」が存在する。 –

+0

はい、私は "関数値を返すために"を追加する必要があります。 –

答えて

3

VBAでは、Returnは別の目的で使用されます。だから、代わりに:

Return sFilePath 

あなたは記述する必要があります。

GetPath = sFilePath 
関連する問題