我正在尝试创建能够帮助我实现正确格式的代码。我想要的是将员工(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值),完全在示例选项卡中。
我希望这是有道理的。到目前为止,我尝试了几种方法,但没有运气。谢谢大家的帮助。
答案 0 :(得分:1)
从您的问题描述中,我想我可以破译您正在使用Excel。
我看到了解决问题的三种基本方法:
最简单的方法是根本不使用VBA,而是使用工作簿函数INDEX和MATCH。后者返回在搜索范围内找到完全匹配的行或列,该搜索范围必须是一维的。 (完全匹配实际上需要搜索选项0.)函数INDEX
返回范围中给定行和列的值。结合两者,您可以更灵活地检查VLOOKUP
和HLOOKUP,
,您可以使用它来查找给定员工的第二个表中的值。 (如果未找到匹配项,则MATCH
会返回N/A
错误。)
第二种方法是在VBA中使用Excel对象模型。您可以使用范围的Find方法在范围内搜索值。这将返回找到匹配项的单元格,如果没有匹配项,则返回Nothing
。如果搜索结果不是Nothing
,则可以使用EntireRow属性获取整行,并使用Cells属性选择行中的单元格。
最后,您可以通过ADODB使用SQL for Excel的支持。有关如何执行此操作的说明,您可以在SO上查看此Microsoft page和旧版question。如果您知道如何编写SQL查询,这应该使您能够通过SQL解决您的问题。