活动单元格作为公式的input

我想知道是否可以使用活动单元格,我的意思是,在鼠标单击后,在给定时间用方形边框“突出显示”的单元格作为函数中的参数。

例如,我创build了一个带有3个权重的加权平均值的表:w1在列标题(请参见下面的文件)中给出,w2在行标题中,w3将w1和w2补全为1。

我想要做的是让表格外的单元格显示选中表格中的单元格时的平均重量。

例如:屏幕截图: http : //imgur.com/emmBH5S/

文件可以在这里find: https : //drive.google.com/file/d/0B_7-00fdslR7Tm11ODRVS296ckk/

在这里,我们看到单元格K12是有效的,对于K12 w1 = 0.2,w2 = 0.15,所以上面的权重表(行3-4)中的单元格根据活动单元格中的权重获得适当的值。 (当然我为了说明的目的而手动创build了这个)

有没有办法做到这一点? 最好没有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将该地址(只是一个string)转换为单元格引用。 然后我用

 =INDEX(Range, 1, Column of Reference) 

获得w1值 – 第一行中的值和活动单元格的相同列。 公式并不在乎你激活的单元格,所以我在那里贴了一个MAX ,所以如果你超出范围,它会返回一个零。

请注意,简单地select一个单元格将不会触发更改。 一旦你select一个单元格,按F9来计算表单,以得到正确的结果。

你需要使用VBA。 按照您的示例将此代码放置在Sheet对象中

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row > 8 And Target.Column > 6 Then Range("G4").Value = Cells(8, Target.Column).Value Range("H4").Value = Cells(Target.Row, 6).Value Range("L4").Value = Cells(Target.Row, Target.Column).Value End If End Sub 

单元格L4显示您可以在其他公式中使用的所选单元格值。

编辑

要放置你的代码,你可以进入VBA窗口,双击你有数据的Sheet对象。 (用图中的箭头标出)然后粘贴你的代码。 在工作表对象中的代码