Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro - generator liczb - Wylosuj 5% ze zbioru

blond_lala 09 Lis 2018 10:32 63 1
  • #1 09 Lis 2018 10:32
    blond_lala
    Poziom 1  

    Witam,
    mam do napisania makro, które ze zmiennego zbioru liczb ma wylosować 5% liczb (bez powtórzeń).
    Póki co zrobiłam coś takiego:

    "Sub Random()

    ActiveCell.Select
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-1])"
    ActiveCell.Offset(1, 0).Range("A1").Select

    ActiveCell.FormulaR1C1 = "=R[-1]C*5%"
    ActiveCell.Offset(1, 0).Range("A1").Select

    ActiveCell.FormulaR1C1 = "=ROUND(R[-1]C,0)"
    ActiveCell.Offset(1, 0).Range("A1").Select

    Dim i As Integer

    For i = 1 To 6

    Cells(i, 1) = Int((125 * Rnd) + 1)

    Next i
    End Sub"

    Akurat w tym spisie jest 125 liczb, 5% z tego to 6,25, po zaokrągleniu 6.
    Mój problem: nie wiem jak zdefiniować, że ma wziąć wartość z komórki B3 (czyli w tym przypadku to 6) i tyle liczb wylosować, tak by makro zadziałało na zmiennej ilości danych.
    A może jakoś inaczej da się mu powiedzieć: weź 5% z wartości zawartych w zakresie A:A i wylosuj tyle liczb? (,bo pewnie to co zrobiłam ja jest bardzo łopatologiczne ;)).
    Będę musiała jeszcze dołożyć warunek, że jeśli 5% jest mniejsze niż 1 to weź 1, ale z tym powinnam sobie już poradzić.
    Z góry dziękuję!

    0 1
  • #2 11 Lis 2018 08:29
    adamas_nt
    Moderator Programowanie

    Sporo niewiadomych. Nie wiadomo gdzie jest 'Activecell', a w związku z tym 'C[-1]' oraz wszystkie "offsetowane". Jedyna wskazówka, że wynik *5% zapisujesz w B3. Trzeba policzyć :)

    W przykładzie losowanie 5% unikatowych liczb z kolumny "C".
    Oczywiście wartość 'ile' możesz zapisać w B3 ;) itd

    0
  Szukaj w 5mln produktów