vlookup多张表并在另一张表中报告

时间:2015-12-30 18:27:04

标签: excel vba excel-vba

我正在使用一个工作簿,该工作簿有许多客户的“预定付款”,每张表中有一个。

工作表具有以下结构 - 日期 - 价值 - 名称 - 银行 - 城市

我需要做的是,搜索DATE并将所有具有该日期的行复制到另一张名为“Busca”的工作表中,搜索所有工作表。

我是初学者,到目前为止我的代码草图是这样的:

Sub Pesquisa()

Dim data As Variant 'declarando a variável que vai receber a data a ser buscada
Dim linha As String 'declarando a variável que vai receber o dado encontrado

On Error Resume Next

Worksheets("Busca").Range("relatorio").ClearContents

data = B1

End Sub

如果有人可以牵手,我也可以上传文件。

由于

1 个答案:

答案 0 :(得分:1)

下面是一段代码草图,可以使用以下假设。

  1. 每个客户表的Date > Value > Name > Bank > City数据位于从单元格A2开始(第1行是标题)
  2. 您将日期放在Busca表单中的单元格A1中,并在该表格的第2行中放置Date > Value > Name > Bank > City标题。
  3. 您可以根据需要修改这些假设。

    Sub Pesquisa()
    
    Dim wsB as Worksheet
    Set wsB = ThisWorkbook.Worksheets("Busca")
    
    Dim dDate as Date
    dDate = wsB.Range("A1") 'assumes your desired date is in cell A1 of Busca sheet
    
    Dim ws as Worksheet
    For each ws in ThisWorkbook.Worksheets
    
        If ws.Name <> "Busca" Then 'check all sheets except Busca sheet
    
            ws.Range("A1:E1").AutoFilter 1, dDate
    
            If Not Intersect(ws.UsedRange,ws.UsedRange.Offset(1)).SpecialCells(xlCellTypeVisible) Is Nothing Then 
                Intersect(ws.UsedRange,ws.UsedRange.Offset(1)).SpecialCells(xlCellTypeVisible).Copy wsB.Range("A" & wsB.Rows.COunt).End(xlUp).Offset(1)
            End If
    
        End If
    
        ws.AutoFilterMode = False
    
    Next
    
    End Sub