•  

    Witam ktoś się zna na #excel?
    Opiszę mój problem bo nigdzie nie moge naleźć jak go rozwiązać
    Chcę z zakresu np 1-500 wylosować 400 liczb które sie nie będą powtarzały i umieścić je w kolumnie B po kolei rosnąco. (Tylko liczby całkowite!) Następnie obok w kolumnie C pozostałe niewylosowane liczby.
    Tzn sam sobie już to posortuje w kolejności ważne bym miał wpływ na to ile pozycji sie losuje, by sie nie powtarzały i obok pojawialy sie pozostałe pozycje. Zamieszczę obrazek.
    Dziękuje z góry
    pokaż całość

    •  

      @Waderra: wołam
      @DwaNiedzwiedzie: dziękuje ale, nie potrafię uruchomić twojego makra (z excela jestem zielony)

      ja zaczołem korzystać z tego makra nie jest idealne ale w miarę działa
      Kod:
      Sub Losowanie()
      Dim SrtLst As Object
      Dim vKeys As Variant
      Dim v As Variant
      Dim i As Long, k As Long
      Dim lTmp As Long
      Dim lUbound As Long
      Dim lLbound As Long
      Dim lCardin As Long

      lUbound = 500
      lLbound = 1
      lCardin = 400

      Set SrtLst = CreateObject("System.Collections.SortedList")

      Randomize Time

      Do
      lTmp = Int((lUbound - lLbound + 1) * Rnd + lLbound)

      If Not SrtLst.Contains(lTmp) Then
      SrtLst.Add lTmp, 0
      End If

      Loop While SrtLst.Count < lCardin


      ReDim vKeys(1 To lCardin)


      For i = 0 To SrtLst.Count - 1
      vKeys(i + 1) = SrtLst.GetKey(i)
      Next i


      ReDim v(1 To lUbound - lCardin)

      For i = 1 To lUbound
      If Not SrtLst.Contains(i) Then
      k = k + 1
      v(k) = i
      End If
      Next i


      vKeys = TransposeIt(vKeys)
      v = TransposeIt(v)

      Cells(2, "B").Resize(UBound(vKeys) + 1).Value = vKeys
      Cells(2, "C").Resize(UBound(v) + 1).Value = v


      End Sub

      Function TransposeIt(vData)
      Dim LBound2 As Long

      LBound2 = -1

      If IsArray(vData) Then
      On Error Resume Next
      LBound2 = UBound(vData, 2)
      On Error GoTo 0

      With CreateObject("New:{8BD21D20-EC42-11CE-9E0D-00AA006002F3}")
      .Column = vData

      If LBound2 = -1 Then
      TransposeIt = .Column
      Else
      TransposeIt = .List
      End If
      End With

      End If


      End Function
      pokaż całość

      +: Waderra
    • więcej komentarzy (5)

...to tylko najnowsze aktywności użytkownika Zxy44

Zobacz wszystkie dodane znaleziska, komentarze i wpisy korzystając z menu powyżej.

Osiągnięcia (1)