我想知道是否可以使用事件单元格,我的意思是在单击鼠标后在给定时间用方形边框“突出显示”的单元格,作为函数中的参数。
例如,我创建了一个具有 3 个权重的加权平均值的表:w1 在列标题中给出(请参阅下面的文件),w2 在行标题中给出,w3 将 w1 和 w2 补充为 1。
我想要做的是让表格外部的单元格显示选择表格中的单元格时获得的平均值。
例如: 截图:http://imgur.com/emmBH5S/
文件可以在这里找到:https://drive.google.com/file/d/0B_7-00fdslR7Tm11ODRVS296ckk/
在这里我们看到单元格 K12 处于事件状态, 对于 K12,w1=0.2,w2=0.15,因此,上面权重表(第 3-4 行)中的单元格根据事件单元格中的权重获取适当的值。 (当然,我手动创建这个是为了说明目的)
有办法做到这一点吗?如果可能的话最好不用VBA 找不到任何有用的东西...
提前致谢! 一个
最佳答案
您不需要 VBA(尽管您可能更喜欢它)。
W1: =INDEX($F$8:$AA$29,1,MAX(COLUMN(INDIRECT(CELL("address")))-(COLUMN(F8)-1),1))
W2: =INDEX($F$8:$AA$29,MAX(ROW(INDIRECT(CELL("address")))-(ROW(F8)-1),1),1)
W3: =J4-(G4+H4)
带有address
参数的CELL
函数返回事件单元格的地址。我使用 INDIRECT 将该地址(只是一个字符串)转换为单元格引用。然后我使用
=INDEX(Range, 1, Column of Reference)
获取 w1 值 - 第一行和事件单元格同一列中的值。该公式并不关心您激活哪个单元格,因此我在其中插入了一个 MAX
,这样如果您超出范围,它就会返回零。
请注意,仅选择单元格不会触发更改。选择单元格后,按 F9 计算工作表以获得正确的结果。
关于vba - 事件单元格作为公式的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405521/