2017-07-18 109 views
0

我正在尝试使用某种触发器来允许此工作表的用户获取输出值(通过我创建的算法)并将其转录到另一个工作表中。如何使用Excel 2010中的“触发器”将值转录为输入的行名称和列名称?

它应该转录值的单元格将取自用户的行名和列名。

在此示例中,用户将分别插入X和Y作为其行名和列名。一旦他们点击触发按钮(不必是按钮,我愿意使用任何类型的触发器,但我认为必须有一个才能使其工作),“值(舍入)”中的值标记的细胞将被转录到相应的单元格:

这种细胞就是我要插入值。

这是自动化的目标。理想情况下,用户只需要输入行名和列名并按下一个按钮(或任何其他触发器),该按钮会将值转录到另一张表中。

+0

看一看的[Worksheet.Change事件](https://msdn.microsoft。 COM/VBA/Excel的VBA /用品/工作表改变事件-Excel文件)。用户不需要点击任何东西来触发它。 – jsheeran

回答

0

您需要在SHEET代码(而不是模块代码)内使用事件宏。下面是如果小区改变如何让两个例子,或者双击发生,无论是在特定的细胞:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

    If Not Intersect(Target, Range("E3")) Is Nothing Then 
    'Do something of Range("E3") has been double clicked 
    '(Basic Example) 
    'Range("G3").Value = "Range("B3").value 

    End If 


    End Sub 

    Private Sub Worksheet_Change(ByVal Target As Range) 
    'If a cell has chanced... 

    If Not Intersect(Target, Range("B3")) Is Nothing Then 
    'Do something 
    End If 

    End Sub 
0

添加一个按钮,可以通过创建一个形状(矩形或任何其他)来完成,正确的点击它并选择“分配宏”。在那里你可以选择一个应该在点击该形状后执行的宏。但有一点需要注意,宏需要成为“公共分支”。

1

这是否必须是VBA?这可以用一个非常简单的公式完成。

假设:

  • 输入片被命名为Input(改变所有引用的输入是表的实际名称)
  • 行名称是在B1单元格(更换输入$ B $ 1!成为实际的行名称条目单元格)
  • 列名称在单元格B2中(更改Input!$ B $ 2为实际列名称条目单元格)
  • 值(圆角)单元格位于B4中(更改输入!$ B $ 4为实际值(圆角)单元格)

在我们Output片,把该式中的单元格B2,然后复制在上下:

=IF(AND(Input!$B$1=$A2,Input!$B$2=B$1),Input!$B$4,"") 
+0

我注意到你在“Input!$ B $ 1 =”后面加入了“= $ A2”,A2扮演什么角色,我必须用什么来代替? – Vedavyas

+0

列A包含您的行名称,所以$ A2将会是您输出表中的第一行名称,这就是公式为何在单元格B2中执行的原因。第1行包含列名的相同逻辑。 – tigeravatar

相关问题