2014-10-06 50 views
0

我有以下數組存儲從搜索功能找到的值。如何使用.EntireRow傳輸數組?

If FoundCells Is Nothing Then 
    Debug.Print "Value Not Found" 
    Else 
    For Each FoundCell In FoundCells 
    Array1(i) = FoundCell.Value 'Instead of .Value I can use .Row but .EntireRow doesn't work 
    i = i + 1 
    Next FoundCell 
    j = i - 1 
    i = 1 
End If 

我然後提取使用轉置其中工程關於「價值」和「.Row」陣列數據,但我不能從由「.EntireRow」各自發現值提取整行。

Range("A1:A" & UBound(Array1) + 1) = WorksheetFunction.Transpose(Array1) 

我試圖用幾種方式改變範圍,但沒有任何東西符合.EntireRow標準。從loannis評論後

更新:

如何使用EntireRow在我的數組移調根據存儲在FoundCell搜索結果中的所有行到目標位置?

我用的FindAll搜索功能從cpearson http://www.cpearson.com/excel/findall.aspx

+0

這是一個典型的說明[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。另外,您對以下答案的評論似乎是一個不同的問題。你想實現什麼? – Ioannis 2014-10-06 18:10:37

+0

在我的問題中,我可能沒有足夠指出,我想根據存儲在數組1中的多個搜索結果轉置所有行。我將更新我的問題。 據我瞭解,我不能用魔法代碼來做這件事。但也許我錯了。 – CryoPeep 2014-10-06 18:49:59

回答

0

您可以提取一整行這樣的但它是一個二維數組。

Sub MethodName() 
    Dim Array1 
    'Get all the cell values in row A 
    Array1 = Cells(1, 1).EntireRow 
    Dim i As Integer 
    'loop through the array and output the contents to the 2nd row 
    For i = 1 To UBound(Array1, 2) 
     Cells(2, i).Value = Array1(1, i) 
    Next i 
End Sub 
+0

感謝您的回答。我正在使用CPearson的FindAll功能 http://www.cpearson.com/excel/findall.aspx 我不確定如何在數組找到多個搜索結果時使用它。 – CryoPeep 2014-10-06 17:20:13

0

我得出的結論,對於這些我這樣做的目的,我還不如報廢的陣列做這樣的:

If FoundCells Is Nothing Then 
    Debug.Print "Value Not Found" 
    Else 
    For Each FoundCell In FoundCells 
    FoundCell.EntireRow.Copy Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1) 
    Next FoundCell 

End If