比较两个工作表中的时间范围,并用颜色填充范围之间的单元格

时间:2018-04-21 09:41:41

标签: excel vba excel-vba time conditional-formatting

有两张纸。第一种是动态更新并获得启动数据库更新和结束时间的时间。第二个包含从第一个借来的时间和每个数据库的名称,每周更新一次。问题是如何在每个更新的数据库的时间范围内填充颜色的单元格?

有第一张表的例子:

  1        2         3 
DB_NAME  start     end
  DB1    20:30    21:02
  DB2    22:04    22:26
  DB3    19:05    22:10

第二张表有一个例子:

 1        2         3       4      5
DAY      TIME      DB1      DB2    DB3
MON     19:05       '        '      '
        20:30       '        '      '
        21:02       '        '      '
        22:04       '        '      '
        22:10       '        '      '
        22:26       '        '      '
TUE     00:25       -        -      - 

2 个答案:

答案 0 :(得分:2)

根据以下公式

创建条件格式规则
// in template
<div (window:scroll)="onWindowScroll($event)"> ... </div>
<table (scroll)="onTableScroll($event)"> ... </table>

// in controller
public onWindowScroll(e): void {
  console.log(e);
}

public onTableScroll(e): void {
  console.log(e);
}

VBA,

=AND(INDEX(Sheet4!$B:$B, MATCH(C$1, Sheet4!$A:$A, 0))<=$B2, INDEX(Sheet4!$C:$C, MATCH(C$1, Sheet4!$A:$A, 0))>=$B2)

enter image description here

答案 1 :(得分:1)

有很多方法可以实现这一目标。 (六种方式,脱离我的头顶!)

这是不需要VBA ......

如果最终目标是提供完成&#34;的图形指示,我认为最简单的方法(因此最容易适应未来的变化)以及最简单的审美方式工作,&#34;将显示Unicode block characters(即{,),而不是试图动态填充单元格。

img

  • C7中输入此公式(然后复制/粘贴到您的其余范围):

    =IF(AND($B8>VLOOKUP(C$6,ssTimes,2,FALSE),$B7<=VLOOKUP(C$6,ssTimes,3,FALSE)),"█████","")
    
  • ssTimes A2:C4 中启动/停止时间查找的命名范围。

  • 其他符号(即,░▒▓ ▌▌▌● ☺)也可以替换为不同的数据或条件,或者只是为了审美目的而