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

Req Macro για Excel


LL_NEO

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

Δημοσ.

Λοιπόν αν κάποιος μπορεί να με διευκολύνει θα του ήμουν υπόχρεος σε βαθμό αηδίας.

 

Έχω 50 μετοχές και τις μηνιαίες αποδόσεις τους για 5 χρόνια. Επιπλέον έχω και τo market return για την ίδια περίοδο. Επειδή λοιπόν θέλω να κάνω regression με εξαρτώμενη μεταβλητή την απόδοση της κάθε εταιρίας και ανεξάρτητη την απόδοση της αγοράς, θα ήθελα να με βοηθήσει κάποιος στο πως να το κάνω αυτό αυτοματοποιημένα.

 

Cheers...

Δημοσ.

Sub Macro2()

'

' Macro2 Macro

' Macro recorded 22/06/2006 by Daprezident

'

 

'

Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$C$6:$C$65"), _

ActiveSheet.Range("$B$6:$B$65"), False, False, , ActiveSheet.Range("$A$1") _

, True, True, False, False, , False

End Sub

 

Πρόσεξε να δεις τι θέλω...

 

α)

ActiveSheet.Range("$C$6:$C$65")

Αν υποθέσουμε ότι το Active Sheet ονομάζεται ExReturn με κάποιο τρόπο να γίνονται 50 regressions

για τις περιοχές ExReturn.Range ("$C$6:$C$65") έως ("$AZ$6:$AZ$65") (50 στήλες ;)

 

ActiveSheet.Range("$A$1")

Αυτό δηλώνει το Output του regression.

Θέλω λοιπόν το πρώτο output να πάει στο φύλλο RegOut.Range("$A$1") το δεύτερο στο RegOut.Range("$A$89") το τρίτο στο RegOut.Range("$A$177") κοκ

 

Βασικά απο ότι διάβασα στο inet κάτι πρέπει να κάνω με for next αλλά έλα που δε σκαμπάζω...

Δημοσ.

Δεν ανεβάζεις ένα Excelόφυλο με τους τύπους που θες, και σε δυο γραμμές παρακάτω να μας έχεις το regression που θες πάλι με τύπους;

 

Έτσι θα καταλάβουμε καλύτερα τι θες για να σε βοηθήσουμε...

Δημοσ.

Στο πρώτο φύλλο (ExReturn) είναι τα δεδομένα μου.

Σε κάθε regression η στήλη Β παραμένει σταθερή ως η ανεξάρτητη μεταβλητή και κάθε φορά αλλάζει η εξαρτώμενη απο C στο πρώτο regression έως ΑΖ στο 50κοστό.

Στο δεύτερο φύλλο (RegOutput) μπαίνει το output της regression (το οποίο btw γίνεται απο tools-> data analysis -> regression. Όπως είπα θέλω όλα τα output να μπουν στο ίδιο φύλλο με απόσταση 89 σειρών (για να μην επικαλύπτεται το output της μια regression με αυτό της άλλης)

Τέλος ορίστε και το κουτί με την regression όπου έχω περάσει τα δεδομένα της πρώτης απο τις 50

regression2mq.jpg

example.zip

Δημοσ.

Ουσιαστικά δηλαδή το μόνο που ρωτάς είναι πως γίνεται ένα for;

 

For i = 1 To 10

ActiveSheet.Cells("A" & i & ":C" & i) = i

Next

 

Αυτό βάζει στις 10 πρώτες γραμμές (και στις στήλες Α ως C) τους αριθμούς 1 ως 10.

 

Δηλαδή αρκεί να βάζεις "γράμμα στήλης", & για συνένωση, και μετά τον αριθμό...

 

Π.χ. για το ActiveSheet.Range("$A$1")

θα έπρεπε να γράψεις

ActiveSheet.Range("$A$" & (88*(i-1) + 1))

αφού ο τύπος 88*(i-1)+1 δίνει 1, 89, κτλ δηλαδή τις γραμμές που θες.

Δημοσ.

και αν θέλω με το i να αντικαταστήσω συμβολισμό στήλης ( Α, Β, C κτλ) πάλι έτσι παίζω;

For i = A To G

ActiveSheet.Cells (i & "1" : i & "20)

θα επιλέγει διαδοχικά τις περιοχές Α1:Α20 έως και G1:G20 ?

Δημοσ.

For i = C To G

For k = 1 To 5

Application.Run "ATPVBAEN.XLA!Regress", ExReturn.Cells("$" & i & "$6:$" & i & "$65"), _

ExReturn.Range("$B$6:$B$65"), False, False, , RegOutput.Range("$A$" & (90 * (k - 1) + 1)) _

, True, True, False, False, , False

Next k

Next i

End Sub

 

 

Ας πούμε εδώ, προσπαθώ να κάνω τα εξής regressions:

C6:C65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A1 του φύλλου RegOutput

 

D6:D65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A91 του φύλλου RegOutput

 

E6:E65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A181 του φύλλου RegOutput

 

κοκ

 

Το θέμα είναι ότι μου πετάει Run Time error 424 Object required. Που κάνω κοτσάνα;

Δημοσ.
και αν θέλω με το i να αντικαταστήσω συμβολισμό στήλης ( Α' date=' Β, C κτλ) πάλι έτσι παίζω;

For i = A To G

ActiveSheet.Cells (i & "1" : i & "20)

θα επιλέγει διαδοχικά τις περιοχές Α1:Α20 έως και G1:G20 ?[/quote']

 

 

To For loop afto grafetai ws e3hs:

>
For row = 1 to 7
  For column = 1 to 20
     Msgbox ActiveSheet.Cells(row, column).value
  Next column
Next row

 

H synarthsh Cells syntasetai me 2 ari8mous gia arguments, o prwtos pou einai to row kai o defteros pou einai to column. To parapanw apla deixnei se ena msgbox tis times apo to A1 ews to G20, omadopoihmenes kata grammh (row).

Δημοσ.

αυτό ομολογώ πως δεν το κατάλαβα. Αν θες κοίτα το ποστ που έκανα μετά απο αυτό που παρέθεσες και πες μου αν μπορείς που έχω κάνει λάθος...

Δημοσ.

Επειδή είναι γράμματα, θα πρέπει να τα βάλεις σε αυτάκια:

for i = 'C' to 'G'

 

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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...