2013-04-01 100 views
0

目前我有宏在另一個文檔中查找並複製偏移單元格,如果存在一個值。我已經有了下面的代碼(只有選擇/複製偏移單元格的部分),但它只會複製一行。這對於我正在尋找的大部分物品都很好。有誰知道如何修改下面的代碼來複制包含我的搜索值的所有單元格?在一個範圍內複製多行

For I = LBound(MyArr) To UBound(MyArr) 

Set Rng = .Find(What:=MyArr(I), _ 
         After:=.Cells(.Cells.Count), _ 
         LookAt:=xlPart, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlNext, _ 
         MatchCase:=False) 

If Not Rng Is Nothing Then 
      FirstAddress = Rng.Address 
      Do 
       'mark the cell in the column to the right if "Ron" is found 
       Rng.Offset(0, 4).Select 
       'Rng.Copy "A" & Rcount 
       Set Rng = .FindNext(Rng) 
      Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress 
      Selection.Copy (Rng) 
     End If 
    Next I 
End With 

回答

0

我會建議的是.Find方法的循環。

所以你有一系列的數據,即MyArr想象它的50個項目。你想從0到50看,直到你找到你的物品。

讓我們假設您在位置8找到它。現在您再次執行搜索,但是這次是從項目9到50並查看是否找到匹配項。如果你不知道沒有更多。如果您重複上述操作,直到數組中的元素用完(範圍),或者沒有更多匹配項。那有意義嗎?