我在 Excel 中有一个表格,如下所示:
A C D
0 0.00% 0.00% 0.00%
473 0.00% 0.00% 3.40%
641 13.80% 13.80% 10.40%
646 13.80% 13.80% 10.40%
3337 13.80% 13.80% 13.80%
3454 13.80% 13.80% 13.80%
该函数的形式为 myFunction(x,y,thresholds_table),其中 x 可以是 A、C 或 D,thresholds_table 是整个表。该函数涉及根据 x 的值从三列之一中查找值。如果我手动指定一列(例如设置 r=2),该函数可以正常工作,但我不知道如何选择列。
我是 VBA 的新手,并且习惯于对数组切片有更好支持的编程语言,所以我可能会以错误的方式解决这个问题。我尝试使用的代码是:
Dim rates As Range
rates = Application.WorksheetFunction.Index(thresholds_table, 1, 0)
r = Application.WorksheetFunction.Match(x, rates)
使用 INDEX 函数选择顶行,然后 Match 查找列索引。但是,它总是返回一个 VALUE 错误。
这似乎一定很简单,但我已经做了很多谷歌搜索,但无法找到答案!
编辑:
抱歉,我不是很清楚:函数的这一部分没有使用“y”参数。基本上我只需要一个函数,如果 x=A 则返回 2,如果 x=C 则返回 3,如果 x=D 则返回 4。我不想直接把它放进去,因为A/C/D将来可能会改变,所以它需要使用任何列标题。