如果匹配sheet2中的值,我正在寻找一种突出显示sheet1中单元格的方法。这是我的代码,没有任何错误,但它什么也没做。基本上我认为Do while循环遍历所有记录,直到它达到空白然后它将读取我的偏移量选择的单元格值并将其与下一个单元格值进行比较,同时保持在同一行,如果匹配它会在表1中突出显示,但如果没有,它会继续前进。让我知道我离开这里有多少,因为我没有太多的VBA知识。谢谢。
$redis = new Redis();
$redis->connect('/tmp/redis.sock');
$sql = "SELECT something FROM sometable WHERE condition";
$sql_hash = md5($sql);
$redis_key = "dbcache:${sql_hash}";
$ttl = 3600; // values expire in 1 hour
if ($result = $redis->get($redis_key)) {
$result = json_decode($result, true);
} else {
$result = Db::fetchArray($sql);
$redis->setex($redis_key, $ttl, json_encode($result));
}
答案 0 :(得分:0)
您的代码基本上是正确的,但我认为您在引用正确的单元格方面遇到了麻烦。一个好的调试技术是在代码中添加.Cells.Interior.ColorIndex = 4
或类似内容,以便直观地看到您是否引用了正确的单元格。您还可以将" F5"," F8"和断点用于弄清楚哪些是错误的。如果您从未使用过这些内容,请参阅http://www.excel-easy.com/vba/examples/debugging.html。
例如:
Do While resource.Offset(i, 3) <> "" '<--Insert a breakpoint on this line,
'then press "F8" to make sure the
'code inside your Do While loop is
'being executed
resource.Offset(i, 3).Cells.Interior.ColorIndex = 4
register.Range("A2").Cells.Interior.ColorIndex = 6
If resource.Offset(i, 3).Value = register.Range("A2").Value Then
resource.Offset(i, 3).Cells.Interior.ColorIndex = 40
End If
i = i + 1
Loop
答案 1 :(得分:0)
也许就像这样简单。 。 。 。
Sub Compare2Shts()
For Each Cell In Worksheets("CompareSheet#1").UsedRange
If Cell.Value <> Worksheets("CompareSheet#2").Range(Cell.Address) Then
Cell.Interior.ColorIndex = 3
End If
Next
For Each Cell In Worksheets("CompareSheet#2").UsedRange
If Cell.Value <> Worksheets("CompareSheet#1").Range(Cell.Address) Then
Cell.Interior.ColorIndex = 3
End If
Next
End Sub