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

Καμία ιδέα με Macro VBA σε excel?


Jimmy_BlinD

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

Δημοσ.

Δυστυχώς δεν έχω ασχοληθεί στο παρελθόν με VBA στο excel,

 

αυτο που θέλω να κάνω είναι πως έχω 633 columns (η μία δίπλα στην άλλη) με αριθμούς. Η κάθε μία column αποτελείται απο 11 στοιχεία (11 αριθμούς)- απο Α2:12 (η πρώτη), Β2:B12 (η δεύτερη)...και η τελευταία είναι απο ΧΙ2:XI12.

 

Θελω αν μπορεί κάποιος να με βοηθήσει στο πως να γράψω μια μακροεντολή που να βάζει την μια column κάτω απο την άλλη. Όχι άθροισμα, ούτε υπολογισμοί. Απλα μια ανακατανομή των στηλών θέλω να γίνεται- όμως η κάθε στήλη να αποτελείται απο τα 11 αυτά στοιχεία και μόνο.

 

Πρακτικά

 

Πριν:

Α,Β,Γ,Δ,Ε...

 

Μετά:

Α

Β

Γ

Δ

.

.

.

 

καμία ιδέα?

κατι με copy-paste πρέπει να είναι σε rolling μορφή.

 

δοκίμασα αυτό:

 

Sub OneColumn()

 

Range("A2:XI12").Select

Selection.cOPY

Range("B14:B6976").Select

ActiveSheet.Paste

 

Application.CutCopyMode = False

 

End Sub

 

αλλά αυτό! κάνει copy paste την 1η στήλη κατω απ την 1η στήλη χιλιάδες φορές, την 2η κάτω απ την 2η αλλες τόσες φορές κλπ κλπ...

Δημοσ.

δεν ξέρω απλα ειχα μια ιδέα. γιατι δεν κάνεις record ένα βήμα, δλδ το β να παει κάτω απο το α, και μετα άνοιξε τον κώδικα και βαλε μια επαναληπτική και 2 δείκτες να τρέχουν και να στο κάνει μέχρι το 660 που θες;

Δημοσ.

Λίγο καθυστερημένα αλλά αν θες try this one.

Λίγο πιο απλοποιημένο και κατανοητό

 

Public Sub OneColumn()

Dim Rowi As Integer 'A/A Rows

Dim Coli As Integer 'A/A Columns

Dim firsti As Integer 'A/A First Column

 

Rowi = 1 'first row of each column

Coli = 2 'Column which start the copy

firsti = 13 'first empty cell in column A

 

Do While ActiveSheet.Cells(1, Coli) <> ""

Do While ActiveSheet.Cells(Rowi, Coli) <> ""

ActiveSheet.Cells(Rowi, Coli).Cut

ActiveSheet.Paste Destination:=ActiveSheet.Cells(firsti, "A")

 

firsti = firsti + 1

Rowi = Rowi + 1

Loop

Rowi = 1

Coli = Coli + 1

Loop

End Sub

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

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

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