通过比较2行中的每个单元格来更改一行单元格的格式

时间:2019-03-20 18:38:51

标签: excel vba

在excel 2016中,我使用查询来收集数据。在此数据中,当前的库存以及接下来的两天生产所需的数量。我想强调一下库存何时少于所需数量。当我使用条件格式设置时,一开始看起来不错,但是随后当我使用更多数据更新时,条件格式的范围受到了损害。使用VBA做到这一点的好方法是什么?

sample data

here is conditional format formula

Conditional Format changing

2 个答案:

答案 0 :(得分:0)

没有更多细节,很难知道“妥协”是什么。我猜条件格式的范围要么不包括新记录,要么被其他记录更改。修改条件格式的范围以包括整个行是否可以解决问题?例如将$A$1:$B$5更改为$A:$B

编辑: 好。尝试每次清除并重置条件格式的VBA。

Sub Format()
  With ActiveSheet.Rows("$2:$2") ''Select rows your working with
    .FormatConditions.Delete  '' Clear out exising Conditional Formatting in selection
    .FormatConditions.Add Type:=xlExpression, Formula1:="=(A$1>A$2)"  ''Formula where condition is true
    .FormatConditions(.FormatConditions.Count).Interior.Color = 65535 ''Set formatting you color yellow
  End With
End Sub

答案 1 :(得分:0)

Greg_D我刚刚找到了一个解决方案,并且看到您刚刚发布了一个解决方案。我尝试了您的方法,效果很好。我走了另一条路。

$jsonObject = '{
  "@context": "http://schema.org",
  "@type": "JobPosting",
  "title": "UX Designer",
  "url": "https://www.google.com",
  "datePosted": "2019-03-15T16:38+00:00",
  "validThrough": "2019-03-22T16:38+00:00",
  "description": "Description",
  "industry": "IT",
  "employmentType": "Permanent",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "PCR",
    "url": "https://www.google.com",
    "logo": "https://www.google.com"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Acton Green",
      "addressRegion": "London",
      "postalCode": "W4 5YB",
      "addressCountry": "GB"
    },
    "geo": {
      "@type": "GeoCoordinates",
      "latitude": "51.4937",
      "longitude": "-0.275693"
    }
  }
}';

$baz = json_decode($jsonObject);
echo($baz[0]->addressRegion); 

对于Range(“ SeqInv”)中的每个单元格

'需要库存的库存商品 '库存* 90%小于警告要求的红色突出显示部分 '使用命名范围low_limit,因此可以在gen设定值工作表中更改

如果cell.Value *(1-Range(“ Low_limit”))

cell.Interior.Color = VBA.ColorConstants.vbRed

'库存*少于黄色警告所要求的数量70%

ElseIf cell.Value *(1-Range(“ High_limit”))

结束子