Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Έχω μια 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.

Επεξ/σία από Merdock

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...