Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 07-01-12, 17:42
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο, δες και μία άλλη προσέγγιση με VBA.

Στο σχετικό παράδειγμα υπάρχουν 10 σύνολα (στήλες) με αριθμητικά δεδομένα.

Το ζητούμενο είναι να σχηματίσουμε μία δεκάδα στοιχείων παίρνοντας από κάθε σύνολο ένα μόνο στοιχείο.

Το πλήθος των δεκάδων που μπορούν να σχηματιστούν, αν υποθέσουμε ότι όλα τα σύνολα έχουν 10 στοιχεία, είναι τεράστιο: 10^10 = 10.000.000.000.

Επειδή το πλήθος μπορεί να πάρει μη διαχειρίσιμες διαστάσεις, στην προσέγγιση που παρουσιάζω, εμφανίζεται μία μόνο τυχαία δεκάδα επιλέγοντας ένα στοιχείο από κάθε σύνολο.

Αυτό γίνεται με τον παρακάτω κώδικα:
Κώδικας:
Public Sub CreateRadomSet()
    Dim rng As Range, LastRow As Long, LastColumn As Long
    Dim J As Long, curRow As Long
    LastColumn = Cells(3, Columns.Count).End(xlToLeft).Column
    Application.ScreenUpdating = False
    For J = 1 To LastColumn
        LastRow = Cells(Rows.Count, J).End(xlUp).Row
        Randomize
        curRow = 4 + Int((LastRow - 4) * Rnd())
        Cells(2, J).Value = Cells(curRow, J).Value
    Next
    Application.ScreenUpdating = True
End Sub
Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xls CreateRadomSet.xls (41,0 KB, 34 εμφανίσεις)
Απάντηση με παράθεση