【问题标题】:Excel macro to copy rows to new sheet(s) based on column valueExcel宏根据列值将行复制到新工作表
【发布时间】:2015-01-30 22:05:41
【问题描述】:

我的查询如下:

我的电信提供商每个月都会给我一份所有订阅者的 Excel 列表,格式如下:

GSM number, account num, caller location, called location, units, cost

123456,     abc123456,   loc1,            loc2,            23,    11.231

123456,     abc123456,   loc8,            loc4,            5,     3

123456,     abc123456,   loc1,            loc4,            102,   71.1

789012,     def789012,   loc4,            loc5,            11,    1.43

789012,     def789012,   loc4,            loc5,            1,     0.23

345678,     ghi345678,   loc6,            loc7,            7,     2.23

等等..

我想遍历 A 列(gsm 号码)并将该号码的所有行复制到以该号码命名的工作表中,例如第 1-3 行将被复制到名为 123456 的工作表中。

我已经设法在这个网站上浏览了一些 other queries 并提出了一些可行的方法,但没有。我面临的问题是特定调用者的行数不是固定的(每次调用一行),调用者的数量也不是固定的(零调用意味着没有行)。我正在尝试 OnCellValueChange 类型的解决方案——因为我可以理解和编辑宏——但还没有写过。

感谢您的宝贵时间!

编辑:另外,作为旁注,我是否也可以在每个电子表格上加上“成本”列的总和?

编辑编辑:感谢大家的解决方案。然而,我对 VBA 的不适应一直困扰着我。所以,我只是在 SQL 数据库中按原样使用 Excel 表,并直接在线进行 SQL/ASP 中的所有格式化和查询。所以现在用户只需输入他们的电话号码(和密码),就可以看到他们的通话记录以及动态生成的小计和排序。谢谢大家的热心帮助。

【问题讨论】:

  • 请您将您当前尝试的解决方案添加到问题中
  • 使用数组会有所帮助 - 用不同的 GSM numbers 填充数组。然后遍历该数组并为数组中的每个值创建一个工作表并遍历电子表格中的所有行以查找该数字 - 如果找到,则复制到新工作表
  • since I can understand & edit macros - but haven't written one yet. 如果你能理解/编辑宏,为什么这是个问题? :-) 请尝试您的解决方案并找出问题 - 通过解决方案 - 而不是仅仅希望有人给您写一个答案..
  • 你会考虑把它变成一个数据透视表吗?您可以通过分组来按成本报告每个 gsm。
  • @user1624085:试试这个。将 GSM 中的值存储到唯一集合中。然后简单地遍历集合并使用自动过滤器来获取所选数字的行。一旦你得到它,只需将相关的可见行复制到相关工作表。

标签: vba excel


【解决方案1】:

正如@joseph4tw 所说,您可以使用类似于下面的数据透视表 (Excel 2010)...

  • 要显示所有项目标签,请选择:字段设置 -> 布局和打印 -> 重复项目标签

  • 要创建工作表选项卡,只需选择数据透视表选项 -> 显示报表过滤器页面(如下所示)

更新创建工作表标签后,您可以根据需要使用组编辑来格式化...

  • 按住 shift 键单击最后一个选项卡来选择所有选项卡,
  • 选择整个工作表并粘贴特殊值以删除所有数据透视表
  • 删除前两行并自动调整列的大小,如图所示

【讨论】:

  • 嗨,感谢大家的解决方案。然而,我对 VBA 的不适应一直困扰着我。所以,我只是在 SQL 数据库中按原样使用 Excel 表,并直接在线进行 SQL/ASP 中的所有格式化和查询。所以现在用户只需输入他们的电话号码(和密码),就可以看到他们的通话记录以及动态生成的小计和排序。谢谢大家的热心帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多