[英]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.