Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如果一行包含今天的日期,如何将整行复制到其他工作表?_Excel_Filter - Fatal编程技术网

Excel 如果一行包含今天的日期,如何将整行复制到其他工作表?

Excel 如果一行包含今天的日期,如何将整行复制到其他工作表?,excel,filter,Excel,Filter,我正在制定一些付款计划。一行通常包含2到4个不同的日期以及客户信息。我想将包含今天日期的任何行从第1页复制到第2页 谢谢你的帮助,如果你需要更多信息,请告诉我 编辑:以下是一些不起作用的内容: 使用Sheet2中的高级过滤器 List Range: Sheet1!$1:$1048576 Criteria Range: =today() Copy To: $a$1 也 以下几点应该行得通 Sub copyIfTodaysDate() Dim todaysDate As Date

我正在制定一些付款计划。一行通常包含2到4个不同的日期以及客户信息。我想将包含今天日期的任何行从第1页复制到第2页

谢谢你的帮助,如果你需要更多信息,请告诉我

编辑:以下是一些不起作用的内容:

使用Sheet2中的高级过滤器

List Range: Sheet1!$1:$1048576
Criteria Range: =today()
Copy To: $a$1


以下几点应该行得通

Sub copyIfTodaysDate()

    Dim todaysDate As Date
    Dim rngData As Range
    Dim rngRow As Range
    Dim rngCell As Range
    Dim counter As Integer

    todaysDate = Date
    counter = 1

    Set rngData = Worksheets("Table1").UsedRange

    For Each rngRow In rngData.Rows
        For Each rngCell In rngRow.Cells
            If rngCell.Value = todaysDate Then
                rngRow.Copy Worksheets("Table2").Rows(counter).Columns(1)
                counter = counter + 1
                Exit For
            End If
        Next
    Next

End Sub

你在这里已经很久了,知道你必须表现出努力。我真的很努力。我刚刚花了30分钟在谷歌上搜索并尝试了一些东西,但我尝试的东西似乎都不管用。所以,展示一下你的尝试。好的,我已经编辑了我的文章:通过勾选它们来学习接受正确的答案新旧。。。如果你表现得忘恩负义,很快你就会发现没有人愿意花时间来帮助你。谢谢。这是可行的,但每次我想查看今天的日期时都必须运行它。有没有别的方法我每次都不用跑?我的印象是我可以用高级过滤器来完成这项工作。是的,你可以把上面的代码放在一个工作簿打开事件中。这样,每次打开工作簿时,表2都会自动填充。但是,如果您的数据集非常大,这可能会花费您很多时间,因为代码总是在您打开工作簿时执行。我的数据集相对较小,只有大约100行。这很有效。很高兴我能帮上忙。如果你能把答案记为accepetd,那就太好了。谢谢您:
Sub copyIfTodaysDate()

    Dim todaysDate As Date
    Dim rngData As Range
    Dim rngRow As Range
    Dim rngCell As Range
    Dim counter As Integer

    todaysDate = Date
    counter = 1

    Set rngData = Worksheets("Table1").UsedRange

    For Each rngRow In rngData.Rows
        For Each rngCell In rngRow.Cells
            If rngCell.Value = todaysDate Then
                rngRow.Copy Worksheets("Table2").Rows(counter).Columns(1)
                counter = counter + 1
                Exit For
            End If
        Next
    Next

End Sub