2016-01-26 59 views
0

林相當堅持的東西,特別是因爲我不能使用MRand函數的隨機數,我需要在2個不同的列。需要在VBA中的2個不同列中生成非重複數字

A列(Par1)只有1到99的數字(每個條目加1) 然後,程序將隨機選擇col.A 1到99中的所選範圍中的1個,然後放入col .B(Par2),這不能是重複的。

然後在col.C(Par3)中它是同樣的東西,但是這個值也不能等於col.B。

是否有可能產生像這樣,尤其是C柱可以等於col.B

問候彼得

編輯:

噢,對不起,列B和C不能等於A列要麼

+0

噢,對不起,列B和C不等於A列要麼 –

回答

0

嘗試...

Sub Macro1() 

For i = 1 To ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row Step 1 
    If Application.WorksheetFunction.CountIf(ActiveSheet.Range("B1", Range("B" & Rows.Count).End(xlUp)), Range("B" & i).Value) > 1 Then 
     MsgBox "Column B Row " & i & " duplicate!" 
    End If 
Next i 

End Sub 
+0

你好感謝你,但作爲即時通訊相當新的不得到的結果col.B –

+0

子RandomB() 暗淡我作爲整數 對於i = 1到ActiveSheet.Range(「A2:A」&Rows.Count).End(xlUp).Row步驟1 如果應用n.WorksheetFunction.CountIf(ActiveSheet.Range(「B2」,Range(「B」&Rows.Count).End(xlUp)),Range(「B」&i).Value)> 1 Then MsgBox「Column B排「&我&」重複!「 結束如果 接下來我 結束小組 –

+0

改了一點點,但也許做了misstake –

0

哦抱歉

列A將具有特定值範圍爲1〜99也許

列B將隨機藉此範圍並填充B:B但他們不能等於col.A在同一行上。

Col.C還將隨機採取col.A但不能等於col.A或B列,其結果應放入col.C

0

覺得生病指定一個小

在A列中,它將只是一個從1開始到XXX的數字,對於每一個新的行條目,這將是+1。

任務是擁有99對夫妻,其中每對夫婦必須邀請2對其他3對夫妻中的2對(初級 - 主菜 - 甜點)。

反過來,他們將被邀請到其他2對夫婦中的3個小鸚鵡中。

所以列A將成爲夫婦1,將邀請列B和C列的3個chriterias之一,如果它讓SENCE :)

0

做了一個快速的代碼,希望它什麼ü需要

Sub LoopNCheck() 

Dim lngCount As Long 
Dim lngLastRow As Long 
lngLastRow = 99 

For lngCount = 1 To lngLastRow 
    With Range("a" & lngCount) 
    .Value = lngCount 
    .Offset(0, 1) = Getrandom(lngCount, lngLastRow) 
    .Offset(0, 2) = Getrandom(lngCount, lngLastRow, .Offset(0, 1)) 
    End With 
Next 


End Sub 

Function Getrandom(lngRestriction As Long, lngMax As Long, Optional lngSecRestriction As Long = 0) 

Calculate: 
Getrandom = WorksheetFunction.RandBetween(1, lngMax) 

If Getrandom = lngRestriction Or Getrandom = lngSecRestriction Then GoTo Calculate 

End Function 
+0

我是否需要更改某些內容?我收到一個錯誤消息,指出公式中的值是錯誤的數據類型 –

+0

我在我的網站上檢查過它,它工作正常,錯誤出現在哪裏? – MattDiakovsky

相關問題