Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
VBA - Αντιγραφή πολλών κελιών σε ένα.
Καλησπέρα, Παρακαλώ τη βοήθειά σας στο εξής: Σε κώδικα VBA πως μπορώ να αντιγράψω τα στοιχεία 3ων κελιών σε ένα, δηλαδή: Α1=4 Β1=go C1=768 να αντιγραφούν στο D1, δηλαδή: D1=4go768 Αυτό να γίνει για ολόκληρη τη στήλη, δηλαδή D2, D3, D4, κλπ. Ευχαριστώ. |
#2
|
Γιατί με VBA και όχι με Concatenate ή τελεστή εμπορικό & Βάλε στο D1 και «τράβηξε» κάτω όσο χρειάζεται. =CONCATENATE(A1;B1;C1) ή =A1&B1&C1 |
#3
| |||
| |||
Αποτελεί μερος μιας μεγαλης αυτοματοποιησης ενος αρχειου excel. Γιαυτο το θελω σε vba. Επισης, θελω οταν εχω π.χ. Α1=575 , Α2=67 να ερχεται στο Β1 , Β2 σταθερα με 6 ψηφια και τα πρωτα να ειναι μηδενικα, δηλαδη 000575, 000067 και αυτο να γινεται για ολη τη στηλη Α. Ευχαριστώ. |
#4
|
Ο πιο κάτω κώδικας ... Κώδικας: Sub test() Dim i As Long, lastrow As Long lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow Cells(i, 4).Value = Cells(i, 1).Value & Cells(i, 2).Value & Cells(i, 3).Value Next i End Sub Δεν ελέγχει όμως αν : Υπάρχουν κεφαλίδες Κενά κελιά ενδιάμεσα Κενά κελιά στο τέλος της στήλης (οπότε επηρεάζει την lastrow) και πολλά ακόμα που πιθανόν, να είναι εξαρτώμενα από μέρος του μεγαλύτερου αυτοματισμού. Σημείωση: Καλό είναι, όταν υπάρχουν εργασίες με κώδικες να εξετάζονται ολόκληροι για αποφυγή σφαλμάτων. Δεν θα συνιστούσα την χρήση οποιουδήποτε κώδικα, αν δεν είναι σωστά ενσωματωμένος στο υπόλοιπο έργο. |
#5
| |||
| |||
Δυστυχώς δεν δουλευει ο κωδικας. Τον ετρεξα μονο του αλλα δεν δουλευει. Ευχαριστω πολυ πάντως. |
#6
|
Καλό είναι, πριν πεις ότι κάτι δεν δουλεύει να έχεις κάνει κάποιο τεστ σωστά .... αν έχεις κάνει τεστ τελικά. «... κάνει ακριβώς αυτό που ζητήθηκε στο 1ο ερώτημα.» Η απόδειξη για το αν δουλεύει στο βιβλίο και τα λόγια περιττά... Τελευταία επεξεργασία από το χρήστη Spirosgr : 19-12-14 στις 16:09. |
#7
| |||
| |||
ok, δικό μου λάθος. Σε ευχαριστώ και πάλι. |
#8
|
Ορίστε λοιπόν η λύση ολοκληρωμένη με βάση και την δεύτερη περιγραφή. Έστω στήλη A (δεδομένα) αριθμοί με 2 ή 3 ψηφία. Έστω στήλη B (κενά κελιά) στα οποία θα έρθει η αξία των Α και μπροστά τα ανάλογα 0 (μηδέν). Η στήλη Β να γίνει μορφοποίηση κείμενο. Έστω στήλη C (δεδομένα) οτιδήποτε. Έστω στήλη D (κενά κελιά) στα οποία θα έρθει η συνένωση των A,B,C. Κώδικας: Sub test() Dim i As Long, lastrow As Long lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow If Len(Cells(i, 1)) = 2 Then Cells(i, 2).Value = "0000" & Cells(i, 1).Value If Len(Cells(i, 1)) = 3 Then Cells(i, 2).Value = "000" & Cells(i, 1).Value Cells(i, 4).Value = Cells(i, 1).Value & Cells(i, 2).Value & Cells(i, 3).Value Next i End Sub Το αποτέλεσμα θα είναι όπως στις εικόνες. Εικόνα 1 πριν, εικόνα 2 μετά. Τελευταία επεξεργασία από το χρήστη Spirosgr : 20-12-14 στις 01:38. |
#9
| |||
| |||
Καλημέρα στην παρέα Θα πρότεινα την ακόλουθη απλοποίηση και γενίκευση στον κώδικα του Σπύρου: Κώδικας: Sub test() Dim i As Long, lastrow As Long lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow Cells(i, 2) = Format(Cells(i, 1), "'000000") Cells(i, 4) = Cells(i, 1) & Cells(i, 2) & Cells(i, 3) Next i End Sub |
#10
|
Καλημέρα Καλό είναι, να εξηγούμε την «φιλοσοφία» του κάθε κώδικα, για να καταλαβαίνουν και οι φίλοι που μας διαβάζουν, τι ακριβώς κάνουμε και γιατί. Κατ' αρχήν: Ο Παύλος, χωρίς να μας δώσει λεπτομέρειες, για το τι περιμένει (ως αποτέλεσμα) από αυτόν τον κώδικα που ζήτησε, θέλει να τον ενσωματώσει, σε κάποιον άλλο μεγαλύτερο. Μπορεί λοιπόν το αποτέλεσμα πχ 000088 να είναι αριθμός με απόστροφο ή κείμενο. Παρατήρηση:(*Υποστήριξη Microsoft >>> γιατί πρέπει να διορθώνουμε αριθμούς με απόστροφο) Σε ορισμένες περιπτώσεις ο τρόπος εμφάνισης ενός αριθμού σε κάποιο κελί, που έχει μορφοποιηθεί και αποθηκευτεί ως κείμενο (όχι καθαρό κείμενο, όχι καθαρός αριθμός), ενδέχεται να προκαλέσει προβλήματα στους υπολογισμούς ή να δημιουργήσει παράλογες σειρές ταξινόμησης. Τώρα: Θα μπορούσε λοιπόν κανείς, να προτείνει (όπως ο Γιώργος) έναν κώδικα, με αποτέλεσμα αριθμό με απόστροφο, που μπορεί να πάρουμε το 000155 για παράδειγμα και να το επεξεργαστούμε περαιτέρω... πχ 000155*2=310 με ότι αυτό συνεπάγεται από την πιο πάνω παρατήρηση. Τελικά: Από την άλλη, η μορφή 000000 παραπέμπει ίσως σε κάτι, που θα μπορούσε να είναι όμοιο με ΑΦΜ ή barcode. Με αυτό το σκεπτικό, το αποτέλεσμα πρέπει κατά την γνώμη μου να είναι καθαρό κείμενο και πρέπει να μορφοποιηθεί η στήλη Β ως κείμενο. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Αντιγραφή κελιών. | steliosgr | Excel - Ερωτήσεις / Απαντήσεις | 1 | 17-03-16 21:01 |
[VBA] Αντιγραφή κελιών μεταξύ Αρχείων | Zounds | Excel - Ερωτήσεις / Απαντήσεις | 0 | 17-01-15 18:18 |
[Excel07] Συνένωση περιεχομένου κελιών πολλών φύλλων σε νέο φύλλο | petroskodos | Excel - Ερωτήσεις / Απαντήσεις | 7 | 14-01-14 19:31 |
[Συναρτήσεις] Αντιγραφή κελιών | alatis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 22-12-11 11:45 |
Η ώρα είναι 07:38.