2017-03-16 84 views
1

有没有办法创建一个excel模板,如果插入了某个列,它会自动应用公式?用例是:Excel粘贴表后应用公式

  1. 用户拷贝从桌面程序(CSV或制表符分隔)
  2. 粘贴表到Excel模板
  3. 不知何故列标题被匹配的表(报头的名字是固定的)
  4. 乘以固定值的列值(像1.25

的问题是,该柱可能是在不同的索引和式应适用于所有行,不只是固定的,但我的主要问题是如何获得复制粘贴事件并找到列。

编辑:我只能用VBA做到这一点(以前从未使用过)?

+0

您的导入是否总是有相同的列数? –

+0

并不总是,这就是为什么我试图通过标题文本找到列 – appl3r

+0

要使用VBA检测粘贴事件,请看下面这个问题:http://stackoverflow.com/questions/27818152/excel-vba-how-检测是否被粘贴在工作表中 – Phylyp

回答

1

假设列标题是恒定的,你可以插入表用“虚设”报头,并使用在标题名称为基准 enter image description here

在我已经把一个公式中的计算值列中的示例计算列。假设您的最大输入列为6,我已将Calc放在G列中,因为从左至右进行计算是一种很好的做法。

您可以将Calc移动到A列,并将“dummy”列减少到1,无论您想要的标题是什么。

要制作模板,删除第3行并清除伪数据,只留下计算(一个或多个),并保存在您的配置文件模板文件夹.xltx(可以是任何地方在您的Windows/Office版本)。

粘贴导入数据时,表格将向下扩展并自动复制公式。如果您已将计算移至表格的左侧,表格将调整至右侧以容纳所有导入的列。

尽管模板中的MyHeader列可能会被覆盖,但如果它仍然可以在Table2 [#Headers]中找到,那么公式仍然可以工作。

+0

只是为了确定:如果在我的粘贴中找到标题,它是否会计算结果到额外的列?我非常喜欢这种方法,但是我需要在粘贴的列上执行更改(我也必须将其应用于其他列,因此重复每个列都不太好)。 – appl3r

+0

如果您的导入包含标题并且其名称一致,请复制并粘贴它们。只要拼写正确,公式的“MATCH”部分就会找到它们。 –