2017-04-14 40 views
0

Excel VBA 我會盡我所能讓這有意義。VBA爲一個數組中的每個項目循環一個文件

我已經爲29個項目設置了我的數組(設備ID T0001-T0028)。

基本上我有一份報告,有這些設備的維修記錄。我正在嘗試創建一個循環,它將遍歷文件並在每次列出equid ID時查找,然後使用左/右/中間函數從文件中提取數據。但是每個裝備ID會多次列出,所以他們的方式我想象這種情況是爲了裝備T0001程序每次都要經過整個文件查找和提取「T0001」列出,然後轉到「T0002」並通過整個文件等...

我知道這將是一種循環,但我很困惑是否循環文件或循環數組。任何人都可以幫忙

Sub EquipArray() 
Dim sampleArr() As Variant 
Dim i As Integer 
Dim rng As Range, cell As Range 

i = 1 
Set rng = Range("A2:A29") 

sampleArr = rng 


End Sub 

回答

1

這是一個發現重複的循環。改變你的需求

Private Sub this() 

Dim rng As Range 
Dim rCell As Range 
Dim this As String 
Dim arr(9) 

Set rng = ThisWorkbook.Sheets("Sheet1").Range("a1:a10") 

For Each rCell In rng.Cells 
    this = rCell.Value 
    For x = LBound(arr, 1) To UBound(arr, 1) 
     If this = arr(x) Then 
      rCell.Interior.ColorIndex = 7 
      Exit For 
     ElseIf this <> arr(x) And arr(x) = vbNullString Then 
      arr(x) = this 
      Exit For 
     End If 
    Next x 
Next rCell 

End Sub 
+0

謝謝我現在就試試 –

0

如果我的理解是正確的,它會使沒有什麼區別,因爲你必須循環吧[文件數] * [項目數量(或[件數] * [文件數],這是相同的)。 難道你不能使用公式來事先分類每個文件,所以你不必對每個項目進行測試?

+0

我不允許上傳圖片(這可能會讓事情變得更容易解釋),但它是一個會列出裝備ID多次的文件。我試圖從報告中編寫額外數據的代碼,但基本上我需要裝備ID作爲「鑰匙」,因爲缺少更好的單詞。代碼將找到id號,然後從該行中提取數據並再次轉到下一行尋找ID#。在文件末尾,我需要重新開始下一個ID#。 –

相關問題