2017-08-11 53 views
0

我嘗試過所有可能的方法來搜索並找到解決此問題的方法,但無濟於事,我的問題是在工作簿中的不同工作表中搜索特定的單元格值,複製整個行及其標題(每個工作表具有不同的標題示例,Lab1,Name,Date,Lab Test Type,LabType N,Name,Date,Test Type等等)並遍歷直到找到最後一個值頭。在這方面的任何幫助將不勝感激,請原諒我不知道問題的正確方法,因爲我完全是這個論壇的新手。 下面的代碼給了我搜索單元格的結果,但是因爲每個搜索結果都有它自己的頭,我沒有得到結果,因爲它只通過循環粘貼整行的單元,而不是它們的頭。 這裏是例子。
Sheet2中有姓名日期年齡性別小區範圍A1號測試類型:F1
Sheet3中有姓名日期年齡性別細胞未檢測到的2型X射線範圍A1:G1
Sheet4有姓名日期年齡性別細胞未檢測到的Type3的X射線心電圖A1: H1搜索工作簿的單元格值並複製整行和標題

Option Explicit 
Option Compare Text '< ignore case 
Sub AllRecordSearchMacroForPhone() 
    Dim FirstAddress As String 
    Dim c As Range, Sheet As Worksheet 
    Dim rng As Range 
    Set rng = Range("D1") 
    If rng = Empty Then Exit Sub 
    For Each Sheet In Sheets 
     If Sheet.Name <> "Sheet1" Then 
      With Sheet.Columns(5) 
       Set c = .find(rng, LookIn:=xlValues, LookAt:=xlWhole) 
       If Not c Is Nothing Then 
        FirstAddress = c.Address 
        Do 
         c.EntireRow.Copy _ 
           Destination:=Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 
         Set c = .FindNext(c) 
        Loop Until c.Address = FirstAddress 
       End If 
      End With 
     End If 
    Next Sheet 
    Set c = Nothing 
End Sub 

回答

0

添加標記行代碼:

If Not c Is Nothing Then 
    >>Sheet.Rows(1).Copy Destination:=Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Offset(1, 0) 
    FirstAddress = c.Address 
+0

伊根狼,你是冠軍,你所建議的線的伎倆,解決了我的問題,非常感謝你,你剛纔救了我生活。 –

+0

好的,它工作正常嗎?想知道你以前的評論是關於什麼的;) –

+0

LOL我不得不再次檢查,發現宏證明我錯了,它完美的工作。 –

相關問題