2017-05-04 46 views
-1

我試圖在VBA中創建一個宏,它將通過「PasteSheet」中的一列搜索包含單詞「轉換」的任何單元格。一旦擁有該單元格,我就可以收集與該行對應的其他列中的其他信息。我遇到的問題是創建一些類型的循環,它將貫穿整個數據庫以返回單詞「轉換」的所有實例。這裏是我的代碼到目前爲止:在電子表格中查找多個實例值

Sub Conversion() 

Dim Comment As Range 
Dim i As String 

Worksheets("PasteSheet").Activate 

Range("Comment").Find("conversion").Select 


Worksheets("sheet1").Range("a1") = Selection.Offset(0, -8) 

End Sub 

請幫助!

+0

參見[這個答案](http://stackoverflow.com/questions/19504858/find-all-matches-in-workbook-using-excel-vba#19509066)學習如何執行多次查找搜索。內部的If塊特別是你需要的。實際上,[Chip Pearson FindAll頁面](http://www.cpearson.com/excel/findall.aspx)更有幫助。 –

回答

0

以下是您可以做到的一種方法。這會將找到的單詞的地址保存在一個數組中,並且您可以在最後使用該數組。我使用列D作爲示例列。改變什麼必要

Sub getCells() 
Dim rng As Range, cel As Range 
Dim celAddress() As Variant 
Dim i As Long 
i = 0 

Set rng = Range("D1:D" & Cells(Rows.Count, 4).End(xlUp).Row) 
ReDim cellAddress(rng.Cells.Count) 

For Each cel In rng 
    If cel.Value = "conversion" Then 
     cellAddress(i) = cel.Address 
     i = i + 1 
    End If 
Next cel 

ReDim Preserve cellAddress(i - 1) 

For i = LBound(cellAddress) To UBound(cellAddress) 
    ' Do whatever with each cell address found 
    Debug.Print cellAddress(i) 
Next i 

End Sub 
+0

感謝您的幫助!無法找到如何讓你的工作,但它讓我以正確的方式思考問題!謝謝! – Josh

+0

@Josh - 什麼都行不通? – BruceWayne