使用.Caller.Column代码标识Column值并在单独的范围查找中使用它

时间:2012-12-04 15:21:17

标签: excel function excel-vba excel-formula vba

我正在尝试设计一个函数,它接受Application.Caller.Column值并使用它来查找不同工作表上的范围。

该功能旨在从下拉框中获取值。该值将确定数组的行,并使用Case语句来执行此操作。我遇到的问题是,如果函数在B列中,我希望函数从另一个工作表中返回B列值,依此类推。

当我使用它时,我一直得到#Value返回,而智能标记告诉我“公式中的值是错误的数据类型”。任何帮助都非常感谢!

代码

 Function NetPay(Scenario As Range)


 Dim CC As String
 CC = Application.Caller.Column
 Select Case Scenario

    Case 1: NetPay = Sheets("Scenarios").Cells(4, CC)
    Case 2: NetPay = Sheets("Scenarios").Cells(7, CC)
    Case 3: NetPay = Sheets("Scenarios").Cells(10, CC)
    Case 4: NetPay = Sheets("Scenarios").Cells(13, CC)
    Case 5: NetPay = Sheets("Scenarios").Cells(16, CC)
    Case 6: NetPay = Sheets("Scenarios").Cells(19, CC)
    Case 7: NetPay = Sheets("Scenarios").Cells(22, CC)


End Select

End Function

1 个答案:

答案 0 :(得分:0)

您将CC定义为String

将定义更改为Long

此外,当您应该查看Select Case

时,.value正在考虑范围