根据Criteria操作数据

时间:2016-12-28 23:20:02

标签: excel excel-vba vba

我正在尝试创建能够帮助我实现正确格式的代码。我想要的是将员工(EE)整行拉出并粘贴到新工作表中,然后将第二部分(ER)值与同一员工匹配。

换句话说,如果员工代表同一雇员支付100(Pen EE(Tal))和雇主支付200(Pen ERS(Tal))的退休金。然后,工作表应该看起来像A列= Pers No,B列=雇员姓名,C列= ID号,D列= PenPay,E列= Pens EE(Tal)和F列= Pens ER(Tal)和G =总计(Pen EE + Pen ER值),完全在示例选项卡中。

我希望这是有道理的。到目前为止,我尝试了几种方法,但没有运气。谢谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

从您的问题描述中,我想我可以破译您正在使用Excel。

我看到了解决问题的三种基本方法:

最简单的方法是根本不使用VBA,而是使用工作簿函数INDEXMATCH。后者返回在搜索范围内找到完全匹配的行或列,该搜索范围必须是一维的。 (完全匹配实际上需要搜索选项0.)函数INDEX返回范围中给定行和列的值。结合两者,您可以更灵活地检查VLOOKUPHLOOKUP,,您可以使用它来查找给定员工的第二个表中的值。 (如果未找到匹配项,则MATCH会返回N/A错误。)

第二种方法是在VBA中使用Excel对象模型。您可以使用范围的Find方法在范围内搜索值。这将返回找到匹配项的单元格,如果没有匹配项,则返回Nothing。如果搜索结果不是Nothing,则可以使用EntireRow属性获取整行,并使用Cells属性选择行中的单元格。

最后,您可以通过ADODB使用SQL for Excel的支持。有关如何执行此操作的说明,您可以在SO上查看此Microsoft page和旧版question。如果您知道如何编写SQL查询,这应该使您能够通过SQL解决您的问题。