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

excel vba macro για αντιγραφη σε νεο sheet


l3ft3r1s

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

Γεια σας,

 

Έχω μια βάση δεδομένων με 65000 γραμμές και 80 στήλες. Από αυτή πρέπει να προκύψει ένα νέο αρχείο, που θα περιέχει 60000 γραμμές (προφανώς με εφαρμογή κάποιου κριτηρίου), με 30 από τις 80 στήλες, σε άλλη σειρά.

 

Ο τρόπος που έχω υλοποιήσει το πρόβλημα μέχρι τώρα είναι ο εξής.

for i = 1 to 65000

if κριτηριο = true

j = j + 1

sheet_new.cells(j, 1) = sheet_old.cells(i, 5)
sheet_new.cells(j, 2) = sheet_old.cells(i, 13)
sheet_new.cells(j, 3) = sheet_old.cells(i, 4)
.
.
.
sheet_new.cells(j, 30) = sheet_old.cells(i, 17)

end if

next i 

Δουλεύει, αλλά παίρνει χρόνο. Τουλάχιστον ένα πεντάλεπτο στο νερό, ίσως και παραπάνω.

Ένας άλλος τρόπος που έχω σκεφτεί, αλλά δεν έχω δοκιμάσει ακόμα, είναι να εφαρμόσω ένα advanced filter με τα κριτήρια μου, και μετά να γίνουν copy paste οι στήλες που θέλω στο νέο αρχείο.

 

Έχετε καμιά ιδέα πιο γρήγορη / αποδοτική?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν θυμάμαι πως λέγεται γιατί πάνε κοντά 10 χρόνια από τότε που το χρειάστηκα. Σβήσε την ανανέωση του GUI. Αυτη είναι λογικά που αργεί. Έχει μια μέθοδο που τη σβήνεις και όταν τελειώσεις την επαναφέρεις.


edit

http://www.mrexcel.com/forum/excel-questions/6059-turning-off-gui-update-during-visual-basic-applications-run.html

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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

Χρησιμοποιούμε  cookies για να απολαμβάνεις το insomnia προσωποποιημένο στις ανάγκες σου αλλά και για την παροχή στοιχείων επισκεψιμότητας για να βελτιώσουμε την ποιότητα των υπηρεσιών μας