【问题标题】:Excel vba: Finding pair of boolean values in range row by rowExcel vba:逐行查找范围内的布尔值对
【发布时间】:2017-08-30 19:03:06
【问题描述】:

我正在尝试使用 vba 在 Excel 表格中解决一个相当基本的问题,但我找不到答案...

我正在研究一个时间表,该时间表是从另一个具有布尔值 True 或 False 的 Excel 工作表动态填充的。 命名范围在 excel 中称为“A”,包含布尔值 True 或 False。每列代表一个可能的开始时间。每行代表一个不同的拼贴画,有一个开始时间和一个结束时间。每行可以有 NO 值(整行 = False = 拼贴正在休假) 或者,该行可以在同一行的不同单元格上具有两个值 TRUE,分别表示开始时间和结束时间。 我想要实现的是逐行查找一对布尔值 TRUE 的 ROW。如果发现第一个和第二个 True 之间的单元格应该被着色,比如说黄色。

我能够在指定范围内循环查找特定值,但无法在特定行中找到一对 TRUE 值。作为仔细检查,我想确保第一个和第二个 TRUE 必须在同一行。所以不可能在不同行的 2 个单元格之间着色。

看图:

一些建议或想法将不胜感激!

【问题讨论】:

  • 打开宏记录器,找到“TRUE”(确保按Rows进行),然后找到next。停止宏记录器。然后进行逻辑检查两个值所在的行是否相同。然后用黄色填充范围。这是你的起点。尝试用单元格引用替换宏中的selections。无论您遇到什么困难,都可以提出新问题。
  • 感谢您的信息,但每张纸都有新的开始时间,具体取决于周。宏不会太静态吗?
  • 是的,它是静态的。完成我的上述评论后,您需要循环使用它。但首先,您需要弄清楚如何在一行中找到连续的值并用黄色填充范围。然后你可以来问如何将它放在一个循环中,用于多行和不同的工作表。
  • 好吧,我猜我们不在同一个页面上。
  • 你可以做一个“蛮力”技术......逐行进行......从“无颜色”开始......从左到右扫描每一行......如果true 然后更改颜色(none2yellow 或 yellow2none)....绘制单元格(无或黄色)....对行中的每个单元格重复

标签: excel vba loops search find


【解决方案1】:

您可以使用条件格式来做到这一点。

选择整个范围,然后在条件格式中使用以下公式。

=COUNTIF($A1:A1,"TRUE")>1 格式化为白色

=COUNTIF($B1:B1,"TRUE")>0 格式化为黄色

公式计算指定范围内“真”的单元格数。

另一种方法是在数据右侧添加 2 列,并使用公式查找开始时间和结束时间,然后根据时间标题和 2 个新值有条件地设置格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多