比较和突出显示时间值

时间:2015-10-30 18:00:39

标签: excel excel-vba vba

我正在解析和分析大型数据集,并尝试突出显示共享相同时间的行。这是一个较大的宏的一小部分,是目前唯一不起作用的部分(其余部分工作得相当好!)我试图将每次比较它之前和之后的时间以便捕获所有事件。如果我只是比较之前的时间,或者只是之后的时间,你可能会看到它会错过很多值。代码:

Integer userID;
Integer postID;

ResultSetMetaData rsMeta = rs.getMetaData();
if (rs.next()) {
  for (int i = 1; i <= rsMeta.getColumnCount(); i++) {
    String table = rsMeta.getTableName(i);
    String col = rsMeta.getColumnName(i);

    if(table.equals("users") && col.equals("id")){
      userID = rs.getInt(i);
      continue;
    }

    if(table.equals("posts") && col.equals("id")) {
      userID = rs.getInt(i);
      continue;
    }
  }
}

示例数据:

'Hightlights trade structures via time

Do
DoEvents

row_number = row_number + 1

'row_color_tester is a proxy for testing trade time "structure principle"
row_color_tester = row_number
tradeTime = ActiveSheet.Range("B" & row_number)

If tradeTime = Range("B" & (row_color_tester + 1)) Or tradeTime = Range("B" & (row_color_tester - 1)) Then
    ActiveCell.EntireRow.Interior.ColorIndex = 8

End If
Loop Until row_number = lastRow + 1

3 个答案:

答案 0 :(得分:1)

至于它为什么不起作用,时间很棘手,它们本质上是一个格式化的数字。例如(0.598483796296296至0.598483796296300)将格式化为14:21:49。这就是为什么你的方式有时可以工作,有时不工作。

要解决此问题,请将.text添加到三个范围的末尾:

ActiveSheet.Range("B" & row_number).Text

这样您只需比较格式化文本。

最好不要使用activecell。使用:

Rows(row_number).entirerow. Interior.colorindex = 8

答案 1 :(得分:0)

过去,我不得不多次这样做。我总是使用这里找到的代码:

http://www.cpearson.com/excel/findall.aspx

答案 2 :(得分:0)

假设时间从第2行和第1列开始,可以通过以下条件格式获得一个简单的解决方案:

enter image description here

以下范围: enter image description here

相关问题