
07-01-12, 17:42
|
| Όνομα: Γιώργος Έκδοση λογισμικού 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
Φιλικά/Γιώργος
|