【问题标题】:Find date in a range在范围内查找日期
【发布时间】:2016-09-22 13:50:47
【问题描述】:

我有很多日期,比如 A1: WW1 我的意思是每个单元格中都有一个日期。

我需要一个在其他日期之间只选择今天日期的宏。

【问题讨论】:

  • 只循环所有单元格并与实际日期进行比较,或者如果您不关心数据顺序,您可以使用自动过滤器,这可以加快处理速度。
  • 您需要更清楚地定义您的问题非常。向我们展示您的数据是什么样的,并解释“仅选择今天的日期”是什么意思,以及您想对该日期做什么。
  • 我只需要一个在单元格之间查找今天日期的宏。我不需要过滤器或其他选项。通常我可以使用 ctrl-find 但每次我都必须写下今天的日期。所以我认为按钮-宏对可以为我做到这一点。这一定是最简单的事情,但我是 vba 的全新初学者。

标签: excel date find vba


【解决方案1】:

我假设您一直在填充数据。如果是这样,我们可以使用 used Range 来找出 Last Row。 请尝试此代码。它将为具有当前数据的单元格着色。我使用有限的范围进行测试,但我认为它也可以在更大的范围内工作。

Sub Highlight()
    Dim Rng As Range
    Dim lastRow As Long, lngRow As Long
    Dim strColumn As Integer
    lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    Dim lastColumn As Integer
    lastColumn = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
    For strColumn = 1 To lastColumn

        With ActiveSheet
            For lngRow = 2 To lastRow  ' Assuming Row 1 As a header Row
                If IsDate(.Cells(lngRow, strColumn).Value) And CDate(.Cells(lngRow, strColumn).Value) = Date Then
                .Cells(lngRow, strColumn).Interior.ColorIndex = 3
                End If
            Next lngRow
        End With
    Next
End Sub

【讨论】:

  • 非常感谢 :)
  • @Levent Nergiz 在堆栈溢出中表示感谢是通过勾选左侧下三角形下方的右标记来接受答案。这是你只能做的一件事。我很高兴它对你有用。
猜你喜欢
  • 2016-10-08
  • 2021-09-07
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 2014-03-29
  • 1970-01-01
相关资源
最近更新 更多