Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Μεγάλη καθυστέρηση εκτέλεσης macro
Καλημέρα, Σε αρχείο με περιπου 2000 γραμμές θέλω να διαγράψω γραμμές οι οποιες σε μία στήλη δεν περιέχουν την τιμή που θέλω... Κώδικας: Sheets("Sheet1 (4)").Select I = Cells(Rows.Count, "D").End(xlUp).Row 'Range("d" & (I + 1)) = "last row" For K = I To 1 Step -1 If Range("D" & K) <> "Bounced and cleared" Then Range("D" & K).EntireRow.Delete End If Next K Παρατήρησα όμως οτι καθυστερεί αρκετά ώστε να μου δώσει το επιθυμητό αποτέλεσμα Μήπως υπάρχει πιό σύντομος τρόπος ; Μπορείτε να μου δώσετε κατευθύνσεις να το ψάξω ; |
#2
|
Καλημέρα Δεν βλέπω μεγάλη καθυστέρηση. Δοκίμασε το παρακάτω: Με τον κώδικα αυτόν: Κώδικας: Sub postNumb() Dim i As Long For i = 1 To 3000 Cells(i, 4).Value = i Next i End Sub και με αυτόν: Κώδικας: Sub test() Dim LastRow As Long, i As Long LastRow = Cells(Rows.Count, 4).End(xlUp).Row For i = LastRow To 1 Step -1 If Cells(i, 4) < 1000 Then Cells(i, 4).EntireRow.Delete End If Next i End Sub χρόνος εκτέλεσης 0,11 sec |
#3
| |||
| |||
καλημέρα Σπύρο, έκανα λάθος ειναι περιπου 12000 οι γραμμες δοκιμαζω αυτά που μου έγραψες και ενημερωνω Ευχαριστώ, :) |
#4
| |||
| |||
παλι έχω καθυστέρηση πάνω από πέντε λεπτά σίγουρα ... :( το laptop ειναι Hp 6475b,είναι ΟΚ σχετικά. |
#5
|
Δοκίμασα με 12000 γραμμές Ίδιος κώδικας Ζητούμενο: διέγραψε τιμές < 5000 Χρόνος 0,34 sec |
#6
| |||
| |||
Χμ. Κάτι δεν γίνεται σωστά στο δικό μου.... αυτό τον κώδικα χρησιμοποιώ και χρησιμοποιώ αλλο αρχείο με μόνο μία στήλη ..... Κώδικας: Sub DeleteRows() ' ' deleterowsuptodown Macro ' Dim LastRowPort As Long, a As Long LastRowPort = Cells(Rows.Count, 1).End(xlUp).Row For a = LastRowPort To 1 Step -1 If a > 1 And Cells(a, 1) <> "" Then Cells(a, 1).EntireRow.Delete End If Next a Selection.AutoFilter End Sub Τελευταία επεξεργασία από το χρήστη Βασίλης Καραχάλιος : 11-10-14 στις 14:13. |
#7
|
Αυτό είναι «λίγο» διαφορετικό από αυτό που ζήτησες στην αρχή Λοιπόν... Κώδικας: Sub DeleteRows() On Error Resume Next Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete End Sub Αν θέλεις άλλο είδος άλλαξε αυτό xlCellTypeConstants και αυτό xlNumbers Τελευταία επεξεργασία από το χρήστη Spirosgr : 12-10-14 στις 13:21. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[VBA] Epeksergasia macro-entolis | ilcamorista | Excel - Ερωτήσεις / Απαντήσεις | 2 | 15-12-16 09:47 |
Πρόβλημα με μεγάλη μακροεντολή | bdim20 | Access - Ερωτήσεις / Απαντήσεις | 5 | 08-10-14 11:32 |
Macro - πληροφορία | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 3 | 06-06-14 21:37 |
Εντολή μή εκτέλεσης κώδικα vba | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 12 | 14-01-14 12:15 |
[VBA] Καθυστέρηση της φόρμας | anestaki | Excel - Ερωτήσεις / Απαντήσεις | 2 | 02-02-13 18:25 |
Η ώρα είναι 08:53.