返回列表 上一主題 發帖

資料欄位中-兩兩配對(已解決)

資料欄位中-兩兩配對(已解決)

本帖最後由 jimmuLu 於 2011-6-2 16:59 編輯

我想將欄位中的資料(數量會變化),兩兩配對,不知該如何寫起?

有點像是Cn取2---n為10,則有10*(10-1)/2=45組

麻煩大家了

兩兩配對Cn取2.zip (3.95 KB)

=n*(n-1)/2

TOP

回復 2# ANGELA


    大大抱歉,題意沒說清楚

資料在A欄,我想在C欄及D欄分別將所有配對情形列出,

麻煩了!!:D

TOP

  1. Sub chin()
  2. Dim s, i%, j%, k%, arr()
  3. s = [a1:a10]
  4. For i = 1 To 9
  5. For j = i + 1 To 10
  6. k = k + 1
  7. ReDim Preserve arr(1 To 2, 1 To k)
  8. arr(1, k) = s(i, 1): arr(2, k) = s(j, 1)
  9. Next: Next
  10. [c1].Resize(k, 2) = Application.Transpose(arr)
  11. End Sub
複製代碼

TOP

謝謝CHIN15

不知可否自動偵測A欄之數量,而不用到VBA去改數量

謝謝囉

TOP

  1. Sub nn()
  2. For Each a In Range([A1], [A65536].End(xlUp).Offset(-1, 0))
  3.     For Each b In Range(a.Offset(1, 0), [A65536].End(xlUp))
  4.     r = r + 1
  5.     Range(Cells(r, 5), Cells(r, 6)) = Array(a.Value, b.Value)
  6.     Next
  7. Next
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 6# Hsieh


    謝謝Hsieh大大,大概看得懂,但是有些是內建的指令或函數就不太懂了

可否請大大說明一下

3Qs

TOP

回復 7# jimmuLu


    Sub nn()
For Each a In Range([A1], [A65536].End(xlUp).Offset(-1, 0))'迴圈範圍從第一個儲存格開始,到A欄最後儲存格往上找到資料,再往上一格,就是最後第二筆
    For Each b In Range(a.Offset(1, 0), [A65536].End(xlUp))'迴圈從第一個迴圈變數的下一格開始,到資料結束
    r = r + 1
    Range(Cells(r, 5), Cells(r, 6)) = Array(a.Value, b.Value)'依序填入E:F欄
    Next
Next
End Sub
學海無涯_不恥下問

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題