首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA Excel的比率条件要求

VBA Excel的比率条件要求
EN

Stack Overflow用户
提问于 2012-10-22 15:35:03
回答 1查看 262关注 0票数 2

我有一个财务数据,它表明项目的健康状况,并根据项目的差异填充一个颜色和一个字母来表示健康状况。例如,如果静脉曲张小于5%,它将颜色绿色填充为"G",>5%但小于20%填充"Y“和>20% = "R”。我用if语句得到了这个结果。但是,我需要填充整个项目的颜色。

有5个项目,这些是要求:

  1. 如果这5个项目中的任何一个项目具有"R“,那么总体健康状况就是"R”。
  2. 如果1/5计划为"Y“,4/5 = "G”,则总体健康为"G“。
  3. 如果2/5 = "Y“和3/5 "G”,则总体健康为"Y“。
  4. 如果3/5 = "Y“和2/5 "G”,则总体健康为“Y”
  5. 如果4/5 = "Y“和1/5 "G”,那么"Y“
  6. 如果5/5 = "Y“那么"Y”
  7. 如果5/5 = "G“那么"G”

所以,如果第一个项目是G,第二个项目是Y第三个项目是Y,4个项目是G,第五个项目是R,我希望它能为整体健康"R“。

我试过使用if语句,但是我必须做的组合太多了。

如何使用VBA excel创建这种“比率”要求?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 16:09:24

您可以为每个Y、R和G创建一个变量,然后根据您的规则执行一个简单的if如果设置一个等于r、y或g的单元格:

代码语言:javascript
复制
Option Explicit

Sub getcounts()

Dim g As Long
Dim r As Long
Dim y As Long
Dim ovrallhealth As Range
Dim variancerange As Range
Set variancerange = Sheets(1).Range("A1:A5")
Set ovrallhealth = Sheets(1).Range("B1")

y = Application.WorksheetFunction.CountIf(variancerange, "y")
g = Application.WorksheetFunction.CountIf(variancerange, "g")
r = Application.WorksheetFunction.CountIf(variancerange, "r")

If r > 0 Then
   ovrallhealth = "R"
ElseIf y = 1 And g = 4 Then
   ovrallhealth = "G"
ElseIf y = 2 And g = 3 Then
   ovrallhealth = "Y"
ElseIf y = 3 And g = 2 Then
   ovrallhealth = "Y"
ElseIf y = 4 And g = 1 Then
   ovrallhealth = "Y"
ElseIf y = 5 Then
   ovrallhealth = "Y"
ElseIf g = 5 Then
   ovrallhealth = "G"
End If

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

https://stackoverflow.com/questions/13014785

复制
相关文章

相似问题

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