gpt4 book ai didi

excel - 如果大于今天,则突出显示单元格

转载 作者:行者123 更新时间:2023-12-04 21:08:26 26 4
gpt4 key购买 nike

我试图突出显示日期大于今天日期的单元格。

H 列的格式为日期。

我有以下内容:

Sub Test()
Dim lrow As Long
lrow = Cells(Rows.Count, 1).End(xlUp).Row
Columns("H:H").EntireColumn.AutoFit
If Range("H2:H" & lrow).Value > Date Then Cell.Interior.Color = vbYellow
End Sub

我收到“类型不匹配”错误。

最佳答案

Range("H2:H" & lrow).Value将是一个二维数组(如果涉及多个单元格,ValueRange 始终是二维数组);您收到类型不匹配错误,因为您无法将 2D 数组与 Date 进行比较;如果您不能使用 conditional formatting ,您需要比较各个数组下标。

您要做的最后一件事是迭代每个单独的单元格(否则您的下一个问题将是“我如何使这个循环运行得更快?”)。将该数组放入 Variant , 并迭代该数组 - 因为它只有 1 列,所以用 Application.Transpose 将其设为一维数组:

Dim values As Variant
values = Application.Transpose(Range("H2:H" & lastRow).Value)

Dim i As Long, current As Long
For i = LBound(values) To UBound(values)
current = i + 1 'array would be 1-based, so to start at row 2 we need to offset by 1
If values(i) > Date Then
ActiveSheet.Cells(current, 8).Interior.Color = vbYellow
End If
Next

这样,您只有在需要时才点击工作表。

关于excel - 如果大于今天,则突出显示单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com