具有单元格参考输入的自定义功

时间:2018-03-12 20:49:29

标签: excel-vba vba excel

我是excel自定义函数的新手,并尝试创建一个自定义Excel函数,输出“Y”或“N”并采用四个参数。我在另一端遇到的错误是#VALUE!没有进一步的解释。我试着在MSDN文档中查看Range对象,但无法理解为什么我的函数没有读取值。

我的函数有四个参数,单元格中的数据类型是中位数:Double,base:Double,hours:Integer,and exemption:String(带字母“E”或“N”)。我从工作表中的四个单独的单元格中获取了这些参数。

Function ToIncrease(median As Range, base As Range, hours As Range, exemption As Range)

    ToIncrease = "N"
    exempt = exemption.Value

    If exempt.Equals("N") Then
        baseSal = base.Value * hours.Value
        medianSal = median.Value * hours.Value
        If medianSal > baseSal Then
            ToIncrease = "Y"
            End If
    End If

    If exempt.Equals("E") Then
        If median.Value > base.Value Then
            ToIncrease = "Y"
        End If
    End If

End Function

我首先尝试exemption.Value.Equals("N")并且它不起作用,然后我尝试将免除变量声明为Dim exempt As String = exemption.Value并且出现了关于期望结束语句的错误。

1 个答案:

答案 0 :(得分:1)

首先替换以下行:

If exempt.Equals("N") Then

If exempt = "N" Then

(可能还有其他问题)

将VBA代码调试为Sub而不是Function()会更容易,因为错误消息要好得多。