You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改VBA代码仅依据Sheet5的H列日期将行复制到Sheet8

解决VBA筛选H列今日日期并复制行的问题

原代码的问题在于遍历了每行的所有单元格,导致只要G列或H列出现今日日期就会复制整行,不符合你只看H列的需求。下面是修改后的正确代码:

Sub dueOutToday()
    Sheet8.Range("A2:U50").Clear
    Dim todaysDate As Date
    Dim rngData As Range
    Dim rngRow As Range
    Dim counter As Integer

    todaysDate = Date
    counter = 1

    Set rngData = Sheet5.UsedRange

    For Each rngRow In rngData.Rows
        ' 直接定位当前行的H列单元格,判断是否等于今日日期
        If rngRow.Cells(, "H").Value = todaysDate Then
            rngRow.Copy Sheet8.Rows(counter).Columns(1)
            counter = counter + 1
        End If
    Next

End Sub

关键修改说明:

  • 删掉了遍历每行所有单元格的内层循环,直接通过rngRow.Cells(, "H")定位到当前行的H列单元格,避免检查其他列
  • 只对H列单元格的日期进行判断,符合条件才复制整行到Sheet8

你之前尝试的写法问题:

  • Set rngRow = Range("H", col):语法错误,Range的引用格式不对,无法正确定位到H列的行
  • If Range("H",col).Value = todaysDate Then:同样是Range引用错误,没有关联到当前循环的行,无法准确判断每行H列的日期

内容的提问来源于stack exchange,提问作者nickC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:52:33