2017-05-04 40 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

相关问题