返回列表 上一主題 發帖

[發問] 只想要抓取符合條件的"第一筆"其他不要

回復 7# boblovejoyce

如果使用  陣列操作, 在我的電腦只要 0.324秒;只做參考:
  1. Option Base 1

  2. Sub test1()
  3. t = Timer
  4. Dim arr, arr1, arr2
  5. Dim i&, j&, k&
  6. arr1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  7. arr = Range("J2:J" & Cells(Rows.Count, 10).End(xlUp).Row)
  8. ReDim arr2(UBound(arr), 1)
  9. For i = 1 To UBound(arr)
  10.     For j = UBound(arr1) To 1 Step -1
  11.         If InStr(arr1(j, 1), arr(i, 1)) <> 0 Then
  12.             For k = j To 1 Step -1
  13.                 If InStr(arr1(k, 1), "  (net ") <> 0 Then
  14.                     arr2(i, 1) = Right(arr1(k, 1), Len(arr1(k, 1)) - 7) '    '²¾°£«e±8Ó¦r¤¸
  15.                     GoTo Nexti
  16.                 End If
  17.             Next
  18.         End If
  19.     Next
  20. Nexti:
  21.   Next
  22.    Range("L2").Resize(UBound(arr2)) = arr2
  23. MsgBox Format(Timer - t, "0.0000")
  24. End Sub
複製代碼

TOP

回復 19# boblovejoyce


    只是個人邏輯思考喜好,以及要設定 下限為1的陣列不必每個 分別定義 "1 to ...."
在使用上要注意的是 Excel 某些產生陣列的函數不受影響,碰到過,但忘記了

2010 VBA 說明 "Array 函數所建立的陣列預設下限必為零,不受 Option Base 所影響" ,好像是錯誤的。

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題