Merdock Δημοσ. 30 Μαρτίου 2015 Δημοσ. 30 Μαρτίου 2015 (επεξεργασμένο) Έχω μια function που έχω φτιάξει σε VBA η οποία έχει σαν παράμετρο ένα range και επιστρέφει ένα πίνακα με διάφορες double τιμές. Το θέμα είναι ότι αν δε διαλέξω τις διαστάσεις του πίνακα από πριν,εμφανίζει μόνο τη τιμή στη πρώτη θέση του πίνακα.Πχ αν πάτησα στο B28, =test(C3:E14) μου βγάζει μόνο στο B28 τιμή.Αυτό που θέλω να κάνω είναι να μη χρειάζεται να διαλέγω εγώ από πριν το range του τελικού πίνακα αλλά να τον υπολογίζει μόνο του το πρόγραμμα.Για παράδειγμα στο παρακάτω κώδικα μου εμφανίζει το 6 μόνο στο B28 ας πούμε.Αν βάλω το Dim newRange as Range Set newRange = Range(ActiveCell, ActiveCell.Offset(numRows, numcols)) newRange.Select πριν το test = matrix για να διαλέξω το μέγεθος που θέλω να έχει ο τελικός πίνακας γίνεται πάλι το ίδιο πράγμα.Γίνεται να κάνω αυτό που λέω ή όχι; Function test(rng As Range) As Variant Dim i As Integer Dim j As Integer Dim numRows As Integer Dim numcols As Integer numcols = rng.Columns.Count numRows = rng.Rows.Count Dim matrix() As Double ReDim matrix(numcols - 1, numcols - 1) For i = 1 To numcols For j = 1 To numcols matrix(i - 1, j - 1) = 6 Next j Next i test = matrix End Function ΥΓ. Έβαλα όλες τις τιμές του matrix = 6 για απλότητα,δεν είναι αυτός ο τελικός κώδικας. EDIT: Οκ λύθηκε η απορία από ένα ξένο forum. Επεξ/σία 30 Μαρτίου 2015 από Merdock
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα