0

目前我有一个 vba,我用它作为 excel 中的加载项来调用一些 UDF。这些函数接受参数,例如数字范围,以及关于这些数字和常量的一些属性。

例如 ROR(some_range_of_numbers,weekly)

第二个参数有以下选项。它可以是每天或每周或每月或每季度或每年。如果它每天我使用 365,如果它每周我使用 52,如果它每月我使用 12 如果它的 Qtrly 那么我使用 4 和年度我使用 1 作为 UDF 中公式的组成部分之一。

现在,我的问题是当用户想要使用该功能时,我想强制用户每天或每周输入等等。我记得一些关于在 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 回答