vba 找出未輸入過的單數雙數

2015-07-27 12:38 am
設有20個數字(定義為文字), 其分別為 01 02 03 04 05 06 07……20
在sheet1 A1~A3輸入 01 05 12
則B欄將依序出現A欄未出現的單數 03 07 09 11 13 15
而C欄將依序出現A欄未出現的雙數 02 04 06 08 10 14
(如連結所附圖示)
請教大大們 該如何以VBA寫出, 感激~~~~~~

https://app.box.com/s/dh7whph4x067b81qm6wejd6u4bbagn16

回答 (4)

2015-07-27 2:39 am
✔ 最佳答案
Sub test()
j = 1
k = 1
For i = 1 To 20
x = Format(i, "00")
Set Rng = [A:A]
tx = Application.Match(x, Rng, 0)
If IsError(tx) Then
If i Mod 2 = 0 Then
Cells(j, 3) = x
j = j + 1
Else
Cells(k, 2) = x
k = k + 1
End If
End If
Next
End Sub
2015-07-28 7:30 pm
Daniel大, 請保留您寶貴的意見, 謝謝熱心的指導, 感激~~
2015-07-27 8:48 pm
Sub TT()
[B:C].ClearContents
For i = 1 To 2
R = 1
C = i + 1
For j = i To 20 Step 2
If Application.CountIf([A:A], j) = 0 Then Cells(R, C) = Format(j, "00"): R = R + 1
Next
Next
End Sub

2015-07-27 12:54:28 補充:
若使用陣列公式,則B1輸入:
=TEXT(SMALL(IF((MOD(ROW($1:$20),2)=2-COLUMN(A1))*(COUNTIF($A:$A,ROW($1:$20))=0),ROW($1:$20),99),ROW()),"[>20] ;00")

向右向下複製

E大的問題應是EXCEL的RANDOM本身的延遲現象,按F9後若游標再任一其他位置點一下,就又出現正確值,若游標不要放置在A欄,好像就不會有此現象,這是個人測試的結果,不知其他大大們有何其它見解
2015-07-27 2:06 am
http://blog.xuite.net/hcm19522/twblog/328310342
借用版大 想請教 "大大們" 為何 ?
D2:E11{=IFERROR(TEXT(~ ~ ~,"00"),"")-->加 TEXT為何只有第一次可以 ,後來按 F9 ,亂數改變 ,D2:E11沒變
D2:E11必須格式化才可 ;"~ ~ ~"為原程式部分

2015-07-27 17:47:02 補充:
感謝 "D大" 指教 學到 TEXT(~ ~,"[>20] ;00") ,另我點返回與往前鍵亦 OK


收錄日期: 2021-04-23 23:54:17
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20150726000015KK04804

檢視 Wayback Machine 備份