首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBA中突出显示超限

在VBA中突出显示超限
EN

Stack Overflow用户
提问于 2020-04-29 07:58:16
回答 4查看 97关注 0票数 0
代码语言:javascript
复制
line    customer product OrderQty TotalQty
1        A        11111    5        10
2        B        11111    5        10
3        c        11111    5        10
4        A        22222    5        20
5        B        22222    5        20
6        C        22222    5        20

我有一张上面所示的桌子。

当产品的OrderQty大于TotalQty时,我想突出显示这些线条。

OrderQty表示按该顺序请求的单元数,TotalQty表示可用于执行所有订单的总单元数。

在本例中,我希望突出显示第1,2,3行,因为产品11111 OrderQty 5+5+5=15大于TotalQty 10。

有什么方法可以在VBA中实现自动化吗?我怀疑使用Sumifs,但我不能把头绕着..。

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-29 09:15:20

也许是这样的?

代码语言:javascript
复制
Sub test()
Range("A:E").Interior.Pattern = xlNone
Range("C1:C7").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AA1"), Unique:=True
Set Rng = Range("AA2", Range("AA100000").End(xlUp))
For Each Prod In Rng
Set c = Range("C:C").Find(Prod.Value, lookat:=xlWhole)
Tot = c.Offset(0, 2).Value
Ord = Application.SumIf(Range("C:C"), Prod.Value, Range("D:D"))
If Ord > Tot Then
For Each cell In Range("C2", Range("C2").End(xlDown))
If cell.Value = Prod.Value Then
Range(cell.Offset(0, -2), cell.Offset(0, 2)).Interior.Color = 65535
End If
Next cell
End If
Next Prod
Range("AA:AA").ClearContents
End Sub

或者,如果选择不使用VBA,则使用条件格式。

  1. 选择要高亮显示的范围。
  2. 单击条件格式化->新规则
  3. 选择“使用公式确定要格式化的单元格”
  4. 在公式框中键入=SUMIF($C:$C,$C2,$D:$D)>VLOOKUP($C2,$C:$E,3,FALSE)
  5. 单击“格式”按钮,然后按所需进行格式化。
  6. 单击OK,单击OK。

票数 0
EN

Stack Overflow用户

发布于 2020-04-29 08:27:50

你不需要VBA来做这个。假设上表从第1行开始,A列中为Line,E列为TotalQty;将唯一的产品列表放在F列中,在单元格G2中放置公式:

代码语言:javascript
复制
=IF(SUMIF(C:C,F2,D:D)>VLOOKUP(F2,C:E,3,FALSE), "Over", "Equal or under")

SUMIF与每个产品的OrderQty之和,VLOOKUP返回表中每个产品的第一个实例的TotalQty。然后,如果需要,可以使用条件格式突出显示行。

如果您确实使用了VBA路由,我可能会将表放入数组中,创建一个带有OrderQty值的产品字典,或者在数组和求和值上循环,或者在字典键上循环并调用sumif工作表函数。

票数 1
EN

Stack Overflow用户

发布于 2020-04-29 08:23:08

[你好凯尔,

这就是你想要做的。这只是简单的解决方案,但可以帮助您。我用了一个帮助栏作为你提到的标准。我用的是苏富比。您可以根据您的风格和需要对其进行修改。我使用条件格式来突出显示单元格。]1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61496897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档