【问题标题】:Manipulate data base on Criteria根据 Criteria 操作数据库
【发布时间】:2016-12-31 20:18:30
【问题描述】:

我正在尝试创建有助于我实现正确格式的代码。我想要的只是拉员工(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 值),与示例选项卡完全相同。

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

【问题讨论】:

  • 您是否通过 ADODB 查看了 VBA 中 Excel 的 SQL 支持?这可能是最干净的解决方案。
  • 嗨,我没有。能否请您发布链接,以便我可以看看它。我对 VBA 编码处理相当陌生。

标签: excel vba


【解决方案1】:

从您的问题描述中,我想我可以解读出您正在使用 Excel。

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

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

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

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

【讨论】:

  • @Mouctar 我同意。给定足够的数据,使用 INDEX 和 MATCH 可能会很慢。在这种情况下,您可能想看看第三种方法。 SQL 支持使用更高效的连接算法来匹配您的数据。
  • 您好,感谢您的建议。但是,我目前正在使用索引和匹配来获得正确的格式,并且我需要永远这样做,因为我有 70 多个养老金计划和大约 7000 名员工,所以这个选项适用于小型报告,但不适用于大型报告。第二个建议可能是更好的选择,但我什至都在努力思考从哪里开始,因为我对 VBA 编码还很陌生。最后的建议也可能很好,但这是我第一次听说它,所以我要花很长时间才能理解,更不用说编写可以完成这项工作的代码了。
  • 如果我能找到关于 SQL 的学习材料,我只想让我的工作生活更美好,因为截止日期很短,所以压力很大。请任何帮助将不胜感激
  • 嗨,请看下面的布局。 A B C D E F Pers.No 姓名 ID 号码 Pension Type Pensionable Pay Amount Net Amount 008835 Jack Wilson NE54315 Pens EE(Tal) 827.57 45.52 008835 Jack Wilson NE54315 Pens ER(Tal) 827.57 162.20 我需要一个可以执行以下示例布局的代码。我对 VBA 编码相当陌生 A B C D E F G Pers.No Name ID Number Pensionable Pay Amount Pens EE(Tal) Pens ER(Tal) Total 008835 Jack Wilson NE54315 827.57 45.52 162.20 207.72 (45.52+162.20) 再次感谢您的帮助
  • @Moucart 出于某种原因,我们在 SQL 上的资产您可以查看 [这里] (quora.com/How-do-I-learn-SQL)。
猜你喜欢
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 2012-04-01
  • 2020-10-01
相关资源
最近更新 更多