0

現在、いくつかのUDFを呼び出すためのExcelのアドインとして使用しているvbaがあります。関数は、数値の範囲などのパラメーター、およびこれらの数値と定数に関するいくつかの属性を受け取ります。

例:ROR(some_range_of_numbers、weekly)

2番目のパラメーターには次のオプションがあります。毎日、毎週、毎月、四半期、または毎年のいずれかになります。毎日365を使用する場合、毎週52を使用する場合、毎月12を使用する場合、Qtrlyの場合は4を使用し、年間の場合はUDFの数式のコンポーネントの1つとして1を使用します。

さて、私の質問は、ユーザーが関数を使用したいとき、ユーザーに毎日または毎週などを入力させたいときです。VBでタイプまたはパラメーターを使用することについて何か覚えています。しかし、ここで迷子になっています。どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

0

以下の関数を試してください:

Function ROR(rng As Range, interval As String) 


    Dim intervalNum As Integer
    select Case LCase(interval)

    Case "daily":
        intervalNum = 365
    Case "weekly":
        intervalNum = 52
    Case "monthly":
        intervalNum = 12
    Case "quarterly":
        intervalNum = 4
    Case "annual":
        intervalNum = 1
    End Select

Debug.Print intervalNum

End Function

コメント後の更新されたコード:

Enum interval
    daily = 365
    weekly = 52
    monthly = 12
    quarterly = 4
    annual = 1
End Enum

Function ROR(rng As Integer, val As interval)


End Function

また、ドロップダウンリストとして取得するタイプを使用することもできます。

Type interval
    daily As Integer
    weekly As Integer
    monthly As Integer
    quarterly As Integer
    annual As Integer
End Type

ここに画像の説明を入力してください

于 2013-03-13T11:04:07.900 に答える