15. februar 2002 - 08:52Der er
1 kommentar og 2 løsninger
Makro til Excel men lavet via Visual Basic
Et spørgsmål. Jeg har fået et prg. der kan lave tilfældige tal, men der ikke må tage tallet mere end en gang. Men jeg bliver ved med at få fejl. Sådan ser den indtil videre ud:
Bingo Makro 'Makro indspillet 16/2/97 af Niels Thommesen ' 'Anbringer tal rækken 1 - 90 i tilfældig rækkefølge ' ' Sub Bingo_makro() Dim x, y, Count, z As Integer Count = 0 Dim t(1 To 90) As Integer For x = 1 To 90 t(x) = x Next x Range("A1").Select Randomize 'Ellers får man samme resultat hver gang! Do y = Int((90 * Rnd) + 1) For x = 1 To 90 If y = t(x) Then t(x) = 0 'Medfører at hvert tal kun optræder 1 gang Count = Count + 1 ActiveCell.Val = y ActiveCell.Offset(1, 0).Select For z = 10 To 80 Step 10 'Udskrivningsrutine (10 x 9) If Count = z Then ActiveCell.Select ActiveCell.Offset(-10, 1).Select End If Next z End If Next x Loop Until Count = 90 End Sub
Dim x, y, Count, z, nRow, nCol As Integer Count = 0 Dim t(1 To 90) As Integer For x = 1 To 90 t(x) = x Next x nRow = 1 nCol = 1 Range("A1").Select Randomize 'Ellers får man samme resultat hver gang! For z = 1 To 90 Do y = Int((90 * Rnd) + 1) For x = 1 To 90 If y = t(x) Then t(x) = 0 'Medfører at hvert tal kun optræder 1 gang Count = Count + 1 Exit Do End If Next x Loop Until Count = 90 If nRow > 10 Then nRow = 1 nCol = nCol + 1 End If Me.Range(Chr(64 + nRow) & nCol).Select ActiveCell.Value = y nRow = nRow + 1 Next z
Her er en lidt kortere udgave, som løser dit problem: Sub Bingo_makro() Dim tal, Count As Integer Dim used(1 To 90) As Boolean
Range("A1").Select Randomize 'Ellers får man samme (tilfældige) resultat hver gang!
Do tal = Int((90 * Rnd) + 1) If Not used(tal) Then used(tal) = True 'Medfører at hvert tal kun optræder 1 gang ActiveCell.Value = tal ActiveCell.Offset(0, 1).Select If ((ActiveCell.Column - 1) Mod 10 = 0) Then ActiveCell.Offset(1, -10).Select End If Count = Count + 1 End If Loop Until Count = 90 End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.