| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπέρα σε όλους Έχω ένα αρχείο Excel απο το οποίο αντιγράφω δεδομένα και τα επικολλώ σε ένα άλλο αρχείο που είναι αποθηκευμένο σε ένα άλλο δίσκο (S). Αυτοματοποίησα την διαδικασία γράφοντας τον παρακάτω κώδικα: Κώδικας: Sub Insert()
Rows("8:8").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ChDir "S:\test"
Workbooks.Open Filename:= _
"S:\test\test1.xls"
Windows("test1.xls").Activate
Dim FirstBlankCell As Range
Set FirstBlankCell = Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
FirstBlankCell.Activate
ActiveSheet.Paste
FirstBlankCell.Select
ThisWorkbook.Activate
ActiveWorkbook.Save
Windows("test1.xls").Activate
ActiveWorkbook.Save
Application.Quit
End Sub
1) Όταν το αρχείο ("test1.xls") είναι ανοικτό μου βγάζει Run-time error '1004': Paste method of Worksheet class failed 2) Όταν δεν έχω πρόσβαση στον δίσκο (S) (Δίσκος Δικτύου) μου βγάζει Run-time error '76': Path not found Το ζητούμενο είναι η σύνταξη του κώδικα έτσι ώστε στην πρώτη περίπτωση να έχουμε ένα MsgBox που να λέει (Κλείστε το αρχείο "test1.xls") και στη δεύτερη να λέει (είστε εκτός δικτύου) Ευχαριστώ εκ των προτέρων Γιώργος |
|
#2
|
|
Φίλε Γιώργο, δες τα παραδείγματα σε αυτό το άρθρο (How to Use "On Error" to Handle Errors in a Macro) στη Knowledge Base της Microsoft. Νομίζω ότι το 2o παράδειγμα που περιέχεται στο άρθρο είναι πανομοιότυπο με αυτό που ζητάς. Θανάσης. |
|
#3
| |||
| |||
|
Θανάση ευχαριστώ Προσάρμοσα τον κώδικα στα μέτρα μου και όλα καλά. Και πάλι ευχαριστώ. Γιώργος |
|
#4
|
|
Φίλε Γιώργο, πολύ χαίρομαι για την ελάχιστη βοήθεια που έδωσα, αλλά χαίρομαι πολύ περισσότερο γιατί διέκρινα στα λόγια σου την ικανοποίηση του "Τα κατάφερα μόνος μου" Μπράβο σου!!! Ευχαριστώ με την σειρά μου για την ανταπόκρισή σου. Τα λέμε Θανάσης |
|
#5
| ||||
| ||||
|
Καλησπέρα κι από μένα! Γιώργο, επίτρεψε μου να σου πω και εγώ ένα μπράβο για την προσπάθεια σου! Εκτός από το 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 Ανάπτυξη επαγγελματικών εφαρμογών |
|
#6
| |||
| |||
|
Καλησπέρα Φίλε Θανάση σ’ ευχαριστώ για την φιλοφρόνηση. Φίλε Τάσο σ’ ευχαριστώ πάρα πολύ για τις υποδείξεις . Είναι για μένα μάθημα. Από την πρώτη στιγμή που έγινα μέλος του Forum κατάλαβα ότι ο Διαχειριστής και κάποια άλλα μέλη λειτουργούν σαν δάσκαλοι. Κάποιος μου είπε ότι αν δώσεις σε κάποιον ένα ψάρι θα ικανοποιήσει την πείνα του για 1 μέρα , αν τον μάθεις να ψαρεύει δεν θα πεινάσει ποτέ. Έτσι λοιπόν μας μαθαίνεται να ψαρεύουμε. Και πάλι σας ευχαριστώ. Γιώργος |
![]() |
| Ετικέτες |
| vba |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Αντιγραφή και επικόλληση (Copy-Paste) | parara | Access - Ερωτήσεις / Απαντήσεις | 6 | 04-03-16 16:28 |
| [Μορφοποίηση] Αντιγραφή - Επικόλληση | Γιώργος Κ. | Excel - Ερωτήσεις / Απαντήσεις | 3 | 11-01-16 11:46 |
| [Γενικά] Αντιγραφή επικόλληση στο πρώτο κενό κελί | PANIK | Excel - Ερωτήσεις / Απαντήσεις | 4 | 22-04-12 10:39 |
| [Excel07] Αντιγραφή/Επικόλληση χωρίς να χάνεται η εντολή | mtheristis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 15-08-11 19:26 |
| [ Φόρμες ] Αντιγραφή και επικόλληση | mgeorge | Access - Ερωτήσεις / Απαντήσεις | 8 | 12-06-11 20:52 |
Η ώρα είναι 18:55.



Αλλαγή σε γραμμικό τρόπο

