用VBA的方法,对A列的记录,通过时间的条件(E2和E3),查询B列的发票号码,并将符合的结果全部显示在C列

如题所述

答:写了段代码,运行前确保本表格为活动表格。

Sub demo()
    Dim StartDate As Date
    Dim EndDate As Date
    Dim Cell As Range
    Dim Drng As Range
    
    Intersect(Columns("C:C"), ActiveSheet.UsedRange).Offset(1, 0).ClearContents
    StartDate = Application.Min(Range("E1:E2"))
    EndDate = Application.Max(Range("E1:E2"))
    Set Drng = Range("C2")
    For Each Cell In Range("A2:A" & Cells(Cells.Rows.Count, 1).End(xlUp).Row)
        If IsDate(Cell) Then
            If Cell >= StartDate And Cell <= EndDate Then
                Drng = Format(Cell, "yyyy-m-d")
                Set Drng = Drng.Offset(1, 0)
            End If
        End If
    Next
End Sub

追问

要把查询单结果保存在另一个表里呢?

追答Set Drng = Sheets("Sheet2").Range("A1")

追问

运行你额VBA,显示的结果是时间,我想选的结果是发票号码

追答

手误了,把Drng = Format(Cell, "yyyy-m-d")更改为Drng = Cell.Offset(0,1)

追问

Intersect(Columns("F:g"), ActiveSheet.UsedRange).Offset(1, 0).ClearContents
这句只能清除本页的选出的内容,把内容保存在另个表格里,就没法清除了。怎么解决?

追答

假如另个表格名为sheer2,更改语句

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜