根据条件填充单元格
Posted
技术标签:
【中文标题】根据条件填充单元格【英文标题】:Fill cell based on condition 【发布时间】:2018-01-18 06:11:05 【问题描述】:我不是程序员,我在网上寻找解决方案,但我找不到。 我需要根据条件列自动填充单元格的宏。
我在“订单”表中的 excel 中有数据:
WorkOrder ID Item2 Column4 Level3 NewColumn
Number4 TOPLEVEL Jonas Station1 5
212121212 2 Station1 5 2
31212121 3 Station1 1 4
... ... ... ... ...
TextSome TOPLEVEL Jonas Station1 5
212121212 2 Station1 5 2
31212121 3 Station1 1 4
... ... ... ... ...
我需要宏,当在列 ID="TOPLEVEL" 中时,然后将 WorkOrder 中的值添加到 NewColumn 并将此列中的行填充到下一个 ID="TOPLEVEL"。像这样:
WorkOrder ID Item2 Column4 Level3 NewColumn
Number4 TOPLEVEL Jonas Station1 5 Number4
212121212 2 Station1 5 2 Number4
31212121 3 Station1 1 4 Number4
... ... ... ... ... Number4
Number4
TextSome TOPLEVEL Jonas Station1 5 TextSome
212121212 2 Station1 5 2 TextSome
31212121 3 Station1 1 4 TextSome
... ... ... ... ... TextSome
谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:无需进入 VBA 解决方案,您就可以通过 Excel 函数完成此操作。一个非常简单的示例是将以下公式放入单元格 E2 中。
=IF(B2="TOP LEVEL",A2,E1)
然后填写 - 数字将自动调整。我假设上面的列是 A-E 列,并且您从第 1 行开始 - 如果您的工作表不同,则相应地调整 B2、A2 和 E1。
简单说明:如果该行是“TOP LEVEL”,则复制 ID,如果不是,则复制上面一行的代码,因为我们假设您的数据结构正确,并且上面的行是从前一行复制而来的“ TOP LEVEL”行。
【讨论】:
我知道这个技巧,但我需要自动化这个动作,因为这个表是网络查询。这就是为什么我需要宏 @SevaArve :您可以创建一个 VBA 解决方案来执行与上述公式等效的操作。您还可以创建一个 VBA 解决方案,在将 Web 查询结果放入后将上述公式插入到工作表中。 网页查询结果宏后在哪里添加这个函数? 我自己不使用 Web 查询,但会查找表明 Web 查询已完成的事件。然后,您可以在运行此函数的相应对象中创建自定义事件处理程序。同样,不使用网络查询,我不知道它是简单的 Worksheet_Change 还是其他东西。以上是关于根据条件填充单元格的主要内容,如果未能解决你的问题,请参考以下文章