Excel VBAでクラスを作成しようとしています。私のプライベートフィールドの1つは、範囲を返す関数への呼び出しを使用して設定されているはずです。そして、その関数の.Valueプロパティを直接代入します。範囲を返す関数のvba valueプロパティ
は、ここに私のコードの基本的な要点です:
' Somewhere up in the private field declaration
Dim mMill as String
' Where the private field is set (internal to class)
mMill = getMill().Value
' The 'getMill() function
Private Function getMill() As Range
' Define the range of the mill
Set getMill = mLandingSheet.Range("D1")
End Function
私はオブジェクト変数を持つか、変数セットでないため「末端関数」ライン上のエラーを取得しています。私の考えは、Excelは関数を呼び出して、同じ行に返されたオブジェクト(この場合はRange)の.Valueプロパティを返すことを許可しません。私は、範囲を返し、いくつかの他の変数に代入し、そこから.Valueプロパティにアクセスする関数を使用できることを確認しました。私はむしろそうする必要はありません。
ありがとうございました!
私はあなたがする必要があると思います問題の原因となるコード例をさらに詳しく説明すると、 'getMill'は' mMill'とやりとりしないので、その理由は不明です。 –
'Set getMill = mLandingSheet.Range(" D1 ")。Valueが機能しない場合は、関数が' Range'を返さなければならないので、 –
こんにちはアレックス、応答ありがとうございます。私はエラーがどこから来ているかを反映するコードの部分を含んでいます。 getMillは、行で呼び出される関数です:mMill = getMill()。Value。 また、関数getMill()はRangeを返します。別の変数(Set temp = getMill())で検証しました。私の問題は、(文字列として淡色表示されている)mMill変数への関数呼び出し(私が理解している文字列を返すはずです)の後に.Valueプロパティを直接割り当てようとすると発生します。 –