Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 01-04-11, 21:59
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα κι από μένα!
Γιώργο, επίτρεψε μου να σου πω και εγώ ένα μπράβο για την προσπάθεια σου!
Εκτός από το Error trapping, θα πρέπει στον προγραμματισμό με VBA να αναφερόμαστε απευθείας στα αντικείμενα
της Excel χωρίς Select, Selection, ActiveCell, Activate γιατί εκτός τη κατά πολύ μειωμένη ταχύτητα εκτέλεσης που προσφέρουν,
προκαλούν την συνεχή ανανέωση της οθόνης και το κυριότερο: προκαλούν λάθη!

Γενικά θα πρέπει να αποφεύγουμε τις πολλές εναλλαγές στην οθόνη (δεν είναι ότι καλύτερο αισθητικά)
Δες τον κώδικα σου με κάποιες αλλαγές και χωρίς τη χρήση Select που δεν θα χρειαστεί πολύ δουλειά στην αποσφαλμάτωση του:

Κώδικας:
Option Explicit

Sub Insert()
    Dim strFile As String, wb As Workbook, wks As Worksheet, rng As Range
    strFile = "C:\test 1\test1.xls"
    With Application
        .ScreenUpdating = False
        .ShowWindowsInTaskbar = False
        If Dir(strFile, vbDirectory) <> vbNullString Then
            Set rng = Rows("8:8")
            Set wb = Workbooks.Open(Filename:=strFile, IgnoreReadOnlyRecommended:=True)
            Set wks = wb.Worksheets("Sheet3")
            rng.Copy
            wks.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteAll
            wb.Save
            wb.Close False
            .ScreenUpdating = True
            .ShowWindowsInTaskbar = True
            'ThisWorkbook.Save
            '.Quit
        End If
    End With
End Sub
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση