簡體   English   中英

根據單元格值查找所有行,然后復制到其他工作表。

[英]Find all rows based on a cell value and copy to different sheet.

我是excel / vba新手。 我對vba的經驗很少。 我並不是要有人為我做事,只是幫我提供一些樣品,這樣我就可以開始弄清楚我的需要了。

我一直在尋找一種方法來幫助我根據放置在單元格中的值搜索電子表格。 這就是我所擁有的。 我有一個包含4個標簽的電子表格,前3個標簽具有不同的數據和不同的列數。 每個表上都相同的一件事是前三列。

date         case#       ticket#
7/14/2018   50807966    5330826969
7/3/2018    50811017    5330860547
7/1/2018    50811022    5330860631
7/13/2018   50811026    5330860683

我想做的是在工作表4上的標有票證編號的單元格中輸入一個數字,然后查找每張工作表上的所有行並將其復制到第四張工作表中。 我希望它將找到的每一行復制到工作表4的下一個空行。我將從工作表1開始並遍歷工作表3。

我需要幫助的是如何做第一張紙。 一旦有了關於如何做一張紙的想法,我就可以弄清楚剩下的事情該怎么做。

目前尚不清楚您的第四張紙是什么樣的。 這將在單元格A1中的第4張紙上查找票證號碼。

執行后,它將循環遍歷每張工作表,並對過濾器中的所有值進行過濾/復制/粘貼前4列。

您將需要更改.Sheets("Sheet4")以匹配您的工作表: .Sheets("?")

Option Explicit

Sub Macro1()
Dim Ws As Worksheet, MyWs As Worksheet
Dim wsLRow As Long, MyLRow As Long

Set MyWs = ThisWorkbook.Sheets("Sheet4")

Dim TicketNumber As String
TicketNumber = MyWs.Range("A1")

Application.ScreenUpdating = False
For Each Ws In Worksheets
    If Ws.Name <> MyWs.Name Then
        With Ws
            If .AutoFilterMode Then .AutoFilterMode = False
            wsLRow = .Range("A" & .Rows.Count).End(xlUp).Row
            MyLRow = MyWs.Range("A" & MyWs.Rows.Count).End(xlUp).Offset(1).Row
            .Range("A:A").AutoFilter 1, TicketNumber
            .Range("A2:D" & wsLRow).SpecialCells(xlCellTypeVisible).Copy
            MyWs.Range("A" & MyLRow).PasteSpecial
            .AutoFilterMode = False
        End With
    End If
Next Ws
Application.ScreenUpdating = True

End Sub

當您的過濾器找不到任何內容時,是否需要處理錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM