Μέθοδοι για τη μεταφορά δεδομένων στο Excel από τη Visual Basic

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 247412 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο ασχολείται με πολλές μεθόδους για τη μεταφορά τα δεδομένα στο Microsoft Excel από την εφαρμογή Microsoft Visual Basic. Αυτό το άρθρο παρουσιάζει επίσης τα πλεονεκτήματα και μειονεκτήματα για κάθε μέθοδο ότι μπορείτε να επιλέξετε τη λύση που σας εξυπηρετεί καλύτερα.

Περισσότερες πληροφορίες

Η προσέγγιση που χρησιμοποιείται συνήθως για τη μεταφορά δεδομένων σε ένα Βιβλίο εργασίας του Excel είναι αυτοματισμού. Αυτοματοποίηση παρέχει μεγαλύτερη ευελιξία για Καθορίζει τη θέση των δεδομένων στο βιβλίο εργασίας, καθώς και τη δυνατότητα να Μορφοποιήστε το βιβλίο εργασίας και να κάνετε διάφορες ρυθμίσεις κατά το χρόνο εκτέλεσης. Με την αυτοματοποίηση, έχετε να χρησιμοποιήσετε διάφορες προσεγγίσεις για τη μεταφορά δεδομένων σας:
  • Μεταφορά δεδομένων ανά κελί
  • Μεταφορά δεδομένων σε έναν πίνακα σε μια περιοχή κελιών
  • Μεταφορά δεδομένων σε μια ομάδα εγγραφών ADO σε μια περιοχή κελιών χρησιμοποιώντας το CopyFromRecordset μέθοδος
  • Δημιουργήστε ένα Ο πίνακας ερωτήματος σε ένα φύλλο εργασίας του Excel που περιέχει το αποτέλεσμα ενός ερωτήματος σε ένα Αρχείο προέλευσης δεδομένων ODBC ή OLEDB
  • Μεταφορά δεδομένων στο Πρόχειρο και στη συνέχεια επικολλήστε το στο Πρόχειρο τα περιεχόμενα σε ένα φύλλο εργασίας του Excel
Υπάρχουν επίσης μεθόδους που μπορείτε να χρησιμοποιήσετε για τη μεταφορά δεδομένων Το Excel που δεν απαιτούν απαραίτητα αυτοματισμού. Εάν εκτελείτε ένα εφαρμογή διακομιστή, αυτό μπορεί να είναι μια καλή προσέγγιση για τη λήψη του επεξεργασία δεδομένων μακριά από υπολογιστές-πελάτες σας. Οι ακόλουθες μέθοδοι μπορεί να χρησιμοποιηθεί Για να μεταφέρετε τα δεδομένα σας χωρίς αυτοματοποίησης:
  • Μεταφέρετε τα δεδομένα σας σε ένα αρχείο κειμένου με στηλοθέτες ή κόμματα Excel μπορεί να αναλύσει αργότερα σε κελιά σε ένα φύλλο εργασίας
  • Μεταφέρετε τα δεδομένα σας σε ένα φύλλο εργασίας χρησιμοποιώντας το ADO
  • Μεταφορά δεδομένων στο Excel χρησιμοποιώντας δυναμική ανταλλαγή δεδομένων (DDE)
Οι παρακάτω ενότητες παρέχουν περισσότερες λεπτομέρειες σε καθεμία από αυτές λύσεις.

Σημείωση Όταν χρησιμοποιείτε το Microsoft Office Excel 2007, μπορείτε να χρησιμοποιήσετε τη νέα μορφή αρχείου βιβλίου εργασίας του Excel 2007 (*.xlsx), όταν αποθηκεύσετε τα βιβλία εργασίας. Για να γίνει αυτό, εντοπίστε την ακόλουθη γραμμή κώδικα στα ακόλουθα παραδείγματα κώδικα:
oBook.SaveAs "C:\Book1.xls"
Αντικαταστήστε με τον κωδικό αυτό με την ακόλουθη γραμμή κώδικα:
oBook.SaveAs "C:\Book1.xlsx"
Επιπλέον, η βάση δεδομένων Northwind δεν περιλαμβάνεται στο Office 2007 από προεπιλογή. Ωστόσο, μπορείτε να κάνετε λήψη της βάσης δεδομένων Northwind από το Microsoft Office Online.

Χρήση αυτοματισμού για τη μεταφορά δεδομένων ανά κελί

Με την αυτοματοποίηση, μπορείτε να μεταφέρετε δεδομένα σε ένα κελί του φύλλου εργασίας σε ώρα:
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object

   'Start a new workbook in Excel
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add


   'Add data to cells of the first worksheet in the new workbook
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1").Value = "Last Name"
   oSheet.Range("B1").Value = "First Name"
   oSheet.Range("A1:B1").Font.Bold = True
   oSheet.Range("A2").Value = "Doe"
   oSheet.Range("B2").Value = "John"

   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit
Μεταφορά δεδομένων ανά κελί μπορεί να είναι απόλυτα αποδεκτή προσέγγιση Εάν η ποσότητα των δεδομένων είναι μικρή. Έχετε την ευελιξία να τοποθετήσετε οπουδήποτε δεδομένων στο βιβλίο εργασίας και να μορφοποιήσετε τα κελιά υπό συνθήκες κατά το χρόνο εκτέλεσης. Ωστόσο, Αυτή η προσέγγιση είναι δεν Προτείνεται εάν έχετε μια μεγάλη ποσότητα δεδομένων για τη μεταφορά ενός Βιβλίο εργασίας του Excel. Κάθε Περιοχή το αντικείμενο να αποκτήσει κατά το χρόνο εκτέλεσης οδηγεί σε μια διασύνδεση αίτηση ώστε να μεταφέρει δεδομένα με αυτόν τον τρόπο μπορεί να είναι αργή. Επιπλέον, Microsoft Windows 95 και Windows 98 έχει έναν περιορισμό 64 K διασύνδεσης αιτήσεις. Εάν φθάσει ή υπερβεί αυτό όριο 64 k για αιτήσεις διασύνδεσης του Διακομιστής αυτοματισμού (Excel) ενδέχεται να σταματήσει να ανταποκρίνεται ή μπορεί να λαμβάνετε σφάλματα υποδεικνύοντας χαμηλής μνήμης. Είναι αυτός ο περιορισμός για τα Windows 95 και Windows 98 που περιγράφεται στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
216400 Αυτοματοποίηση COM σύντομη διαδικασία σταματά να ανταποκρίνεται η εφαρμογή προγράμματος-πελάτη για Windows 95/98
Μεταφορά δεδομένων ανά κελί είναι ακόμα μία φορά αποδεκτή μόνο για μικρούς όγκους δεδομένων. Εάν χρειάζεται να μεταφέρετε μεγάλο δεδομένων σύνολα στο Excel, θα πρέπει να εξετάσετε μία από τις λύσεις που παρουσιάζονται αργότερα.

Για περισσότερες δείγμα κώδικα για αυτοματοποίηση του Excel, δείτε την παρακάτω άρθρο της Γνωσιακής Βάσης της Microsoft:
219151 Τρόπος αυτοματοποίησης του Microsoft Excel από τη Visual Basic

Χρησιμοποιήσετε αυτοματισμό για να μεταφέρετε έναν πίνακα δεδομένων σε μια περιοχή σε ένα φύλλο εργασίας

Ένας πίνακας δεδομένων μπορούν να μεταφερθούν σε μια περιοχή πολλά κελιά μία φορά:
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object

   'Start a new workbook in Excel
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add

   'Create an array with 3 columns and 100 rows
   Dim DataArray(1 To 100, 1 To 3) As Variant
   Dim r As Integer
   For r = 1 To 100
      DataArray(r, 1) = "ORD" & Format(r, "0000")
      DataArray(r, 2) = Rnd() * 1000
      DataArray(r, 3) = DataArray(r, 2) * 0.7
   Next

   'Add headers to the worksheet on row 1
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1:C1").Value = Array("Order ID", "Amount", "Tax")

   'Transfer the array to the worksheet starting at cell A2
   oSheet.Range("A2").Resize(100, 3).Value = DataArray
   
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit
Εάν μεταφέρετε τα δεδομένα σας χρησιμοποιώντας ένα πίνακα αντί για κελί με κελί, μπορείτε να αντιληφθείτε ότι ένα κέρδος τεράστιο επιδόσεων με μεγάλο όγκο δεδομένων. Σκεφτείτε Αυτή η γραμμή από τον παραπάνω κώδικα που μεταφέρει δεδομένα στα κελιά 300 το φύλλο εργασίας:
   oSheet.Range("A2").Resize(100, 3).Value = DataArray
Η γραμμή αυτή αντιπροσωπεύει δύο αιτήσεις διασύνδεση (μία για το Περιοχή αντικείμενο που το Περιοχή η μέθοδος επιστρέφει και άλλη για το Περιοχή αντικείμενο που το Αλλαγή μεγέθους η μέθοδος επιστρέφει). Αφετέρου, τη μεταφορά δεδομένων κελιού από κελί θα απαιτούσε αιτήσεις για 300 διασυνδέσεων Περιοχή αντικείμενα. Όποτε είναι δυνατόν, μπορούν να επωφεληθούν από τη μεταφορά τα δεδομένα σας σε μαζικές και μείωση του αριθμού των αιτήσεων διασύνδεσης που κάνετε.

Χρησιμοποιήσετε αυτοματισμό για να μεταφέρετε μια ομάδα εγγραφών ADO σε μια περιοχή του φύλλου εργασίας

Excel 2000 εισήγαγε το CopyFromRecordset μέθοδος που σας επιτρέπει να μεταφέρετε μια ομάδα εγγραφών ADO (ή DAO) για ένα περιοχή σε ένα φύλλο εργασίας. Ο ακόλουθος κώδικας δείχνει πώς θα μπορούσε να αυτοματοποιήσετε Το Excel 2000, το Excel 2002 ή Office Excel 2003 και να μεταφέρετε τα περιεχόμενα του Πίνακας "Παραγγελίες" χρησιμοποιώντας το δείγμα βάσης δεδομένων Northwind της CopyFromRecordset μέθοδος.
   'Create a Recordset from all the records in the Orders table
   Dim sNWind As String
   Dim conn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   sNWind = _
      "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
   conn.CursorLocation = adUseClient
   Set rs = conn.Execute("Orders", , adCmdTable)
   
   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
   
   'Transfer the data to Excel
   oSheet.Range("A1").CopyFromRecordset rs
   
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit
   
   'Close the connection
   rs.Close
   conn.Close
Σημείωση Εάν χρησιμοποιείτε το Office 2007 έκδοση της βάσης δεδομένων Northwind, πρέπει να αντικαταστήσετε την ακόλουθη γραμμή κώδικα στο παράδειγμα κώδικα:
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ sNWind & ";"
Αντικαταστήστε αυτήν τη γραμμή κώδικα με την ακόλουθη γραμμή κώδικα:
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _ sNWind & ";"
Excel 97 παρέχει επίσης μια CopyFromRecordset η μέθοδος, αλλά μπορείτε να το χρησιμοποιήσετε μόνο με μια ομάδα εγγραφών DAO. CopyFromRecordset με το Excel 97 δεν υποστηρίζει το ADO.

Για περισσότερες πληροφορίες σχετικά με τη χρήση του ADO και το CopyFromRecordset μέθοδος, ανατρέξτε στο ακόλουθο άρθρο της Microsoft (Knowledge Base):
246335 Τρόπος μεταφοράς δεδομένων από μια ομάδα εγγραφών ADO σε Excel με αυτοματοποίηση

Χρησιμοποιήσετε αυτοματισμό για να δημιουργήσετε μια QueryTable σε ένα φύλλο εργασίας

Α Ο πίνακας ερωτήματος αντικείμενο αναπαριστά έναν πίνακα που δημιουργήθηκε από δεδομένα που επιστρέφονται από ένα εξωτερικό αρχείο προέλευσης δεδομένων. Κατά την αυτοματοποίηση της Microsoft Excel, μπορείτε να δημιουργήσετε μια Ο πίνακας ερωτήματος παρέχοντας απλώς μια συμβολοσειρά σύνδεσης σε ένα OLEDB ή ODBC αρχείο προέλευσης δεδομένων μαζί με μια συμβολοσειρά SQL. Το Excel υποθέτει ότι η ευθύνη για την Δημιουργία συνόλου εγγραφών και την εισαγωγή στο φύλλο εργασίας στη θέση Μπορείτε να καθορίσετε. Χρήση QueryTables προσφέρει πολλά πλεονεκτήματα μέσω του CopyFromRecordset μέθοδος:
  • Excel χειρίζεται τη δημιουργία του αντικειμένου recordset και του Τοποθέτηση μέσα στο φύλλο εργασίας.
  • Το ερώτημα μπορεί να αποθηκευτεί με το Ο πίνακας ερωτήματος έτσι ώστε να ανανεωθούν αργότερα για να αποκτήσετε ένα ενημερωμένο σύνολο εγγραφών.
  • Όταν ένα νέο Ο πίνακας ερωτήματος προστίθεται στο φύλλο εργασίας σας, μπορείτε να καθορίσετε ότι τα δεδομένα ήδη υπάρχοντα κελιά του φύλλου εργασίας μετατοπιστούν ώστε να χωρούν τα νέα δεδομένα (βλ. το RefreshStyle ιδιότητα για λεπτομέρειες).
Ο ακόλουθος κώδικας περιγράφει τον τρόπο που θα μπορούσε να αυτοματοποιείτε το Excel 2000, Το Excel 2002 ή Office Excel 2003 για να δημιουργήσετε ένα νέο Ο πίνακας ερωτήματος σε ένα φύλλο εργασίας του Excel, χρησιμοποιώντας δεδομένα από το δείγμα Northwind Βάση δεδομένων:
   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
   
   'Create the QueryTable
   Dim sNWind As String
   sNWind = _
      "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
   Dim oQryTable As Object
   Set oQryTable = oSheet.QueryTables.Add( _
   "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";", oSheet.Range("A1"), "Select * from Orders")
   oQryTable.RefreshStyle = xlInsertEntireRows
   oQryTable.Refresh False
   
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit

Χρησιμοποιήστε το Πρόχειρο

Το Πρόχειρο των Windows μπορεί επίσης να χρησιμοποιηθεί ως ένα μηχανισμό για μεταφορά δεδομένων σε ένα φύλλο εργασίας. Για να επικολλήσετε δεδομένα σε πολλά κελιά σε ένα φύλλο εργασίας, μπορείτε να αντιγράψετε μια συμβολοσειρά όπου στήλες είναι οριοθετημένο με χαρακτήρες tab και οι γραμμές οριοθετούνται με χαρακτήρες επαναφοράς. Ο ακόλουθος κώδικας απεικονίζει τον τρόπο Visual Basic να χρησιμοποιήσετε το Πρόχειρο του αντικείμενο μεταφοράς δεδομένων στο Excel:
   'Copy a string to the clipboard
   Dim sData As String
   sData = "FirstName" & vbTab & "LastName" & vbTab & "Birthdate" & vbCr _
           & "Bill" & vbTab & "Brown" & vbTab & "2/5/85" & vbCr _
           & "Joe" & vbTab & "Thomas" & vbTab & "1/1/91"
   Clipboard.Clear

   Clipboard.SetText sData
   
   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   

   'Paste the data
   oBook.Worksheets(1).Range("A1").Select
   oBook.Worksheets(1).Paste
   
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit

Δημιουργήσετε ένα οριοθετημένο αρχείο κειμένου που μπορεί να αναλύσει το Excel σε γραμμές και στήλες

Excel μπορεί να ανοίξει αρχεία οριοθετημένη με στηλοθέτες ή κόμματα και να αναλύσει σωστά τα δεδομένα σε κελιά. Μπορείτε να εκμεταλλευτείτε αυτήν τη δυνατότητα όταν θέλετε να μεταφέρετε μεγάλο όγκο δεδομένων σε ένα φύλλο εργασίας ενώ χρησιμοποιείτε λίγο, αν υπάρχουν, Αυτοματοποίηση. Αυτό μπορεί να είναι μια καλή προσέγγιση για μια εφαρμογή πελάτη-διακομιστή Επειδή το αρχείο κειμένου μπορεί να είναι δημιουργημένο διακομιστή. Στη συνέχεια, μπορείτε να ανοίξετε το κείμενο το αρχείο στον υπολογιστή-πελάτη χρησιμοποιώντας αυτοματοποίηση όπου είναι κατάλληλο.

Το ακολουθεί κώδικα παρουσιάζει πώς μπορείτε να δημιουργήσετε ένα αρχείο κειμένου οριοθετημένο από μια ομάδα εγγραφών ADO:
   'Create a Recordset from all the records in the Orders table
   Dim sNWind As String
   Dim conn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim sData As String
   sNWind = _
      "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
   conn.CursorLocation = adUseClient
   Set rs = conn.Execute("Orders", , adCmdTable)
   
   'Save the recordset as a tab-delimited file
   sData = rs.GetString(adClipString, , vbTab, vbCr, vbNullString)
   Open "C:\Test.txt" For Output As #1
   Print #1, sData
   Close #1
    
   'Close the connection
   rs.Close
   conn.Close
   
   'Open the new text file in Excel
   Shell "C:\Program Files\Microsoft Office\Office\Excel.exe " & _
      Chr(34) & "C:\Test.txt" & Chr(34), vbMaximizedFocus
Σημείωση Εάν χρησιμοποιείτε το Office 2007 έκδοση της βάσης δεδομένων Northwind, πρέπει να αντικαταστήσετε την ακόλουθη γραμμή κώδικα στο παράδειγμα κώδικα:
 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
Αντικαταστήστε αυτήν τη γραμμή κώδικα με την ακόλουθη γραμμή κώδικα:
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
      sNWind & ";"
Εάν το αρχείο κειμένου έχει μια.Επέκταση CSV, το Excel ανοίγει το αρχείο χωρίς Εμφανίζει τον "Οδηγό εισαγωγής κειμένου" και θεωρεί αυτόματα ότι το αρχείο είναι οριοθετημένο με κόμματα. Ομοίως, εάν το αρχείο έχει ένα.Επέκταση TXT, Excel να αναλύσει αυτόματα το αρχείο χρησιμοποιώντας την καρτέλα οριοθέτες.

Στην προηγούμενη ξεκίνησε το δείγμα κώδικα, Excel, χρησιμοποιώντας το Κέλυφος δήλωση και το όνομα του αρχείου που χρησιμοποιήθηκε ως μια γραμμή εντολών το όρισμα. Χωρίς αυτοματισμό χρησιμοποιήθηκε στο προηγούμενο δείγμα. Ωστόσο, αν Ναι θέλετε, θα μπορούσατε να χρησιμοποιήσετε ένα ελάχιστο ποσό αυτοματισμού για το άνοιγμα αρχείου κειμένου και Αποθηκεύστε το σε μορφή βιβλίου εργασίας του Excel:
   'Create a new instance of Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
       
   'Open the text file
   Set oBook = oExcel.Workbooks.Open("C:\Test.txt")
   
   'Save as Excel workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls", xlWorkbookNormal
   oExcel.Quit
Για περισσότερες πληροφορίες σχετικά με το I/O αρχείο από τη Visual Basic εφαρμογή, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
172267 RECEDIT.VBP παρουσιάζει I/O αρχείο στη Visual Basic

Μεταφορά δεδομένων σε ένα φύλλο εργασίας με χρήση ADO

Χρησιμοποιώντας το Jet παροχής Microsoft OLE DB, μπορείτε να προσθέσετε εγγραφές σε μια πίνακας σε ένα υπάρχον βιβλίο εργασίας του Excel. "Πίνακας" στο Excel είναι απλώς μια περιοχή με ένα καθορισμένο όνομα. Στην πρώτη γραμμή της περιοχής πρέπει να περιέχει κεφαλίδες (ή πεδίο ονόματα) και όλες οι επόμενες γραμμές περιέχουν τις εγγραφές. Τα παρακάτω βήματα δείχνουν πώς μπορείτε να δημιουργήσετε ένα βιβλίο εργασίας με έναν κενό πίνακα με το όνομα Η.
Excel 97, το Excel 2000 και το Excel 2003
  1. Ξεκινήστε ένα νέο βιβλίο εργασίας στο Excel.
  2. Προσθέστε τις ακόλουθες κεφαλίδες κελιά A1:B1 του Φύλλο1:

    A1: FirstName B1: επώνυμο
  3. Μορφοποιήστε το κελί B1 με δεξιά στοίχιση.
  4. Επιλέξτε A1:B1.
  5. Από το Εισαγωγή μενού, επιλέξτε Ονόματα και στη συνέχεια επιλέξτε Ορισμός. Εισαγάγετε το όνομα Η και κάντε κλικ στο κουμπί OK.
  6. Αποθηκεύστε το νέο βιβλίο εργασίας ως C:\Book1.xls και κλείσιμο Το Excel.
Για να προσθέσετε εγγραφές σε Η χρήση των ADO, μπορείτε να χρησιμοποιήσετε κώδικα παρόμοιο με το ακόλουθο:
   'Create a new connection object for Book1.xls
   Dim conn As New ADODB.Connection
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;"
   conn.Execute "Insert into MyTable (FirstName, LastName)" & _
      " values ('Bill', 'Brown')"
   conn.Execute "Insert into MyTable (FirstName, LastName)" & _
      " values ('Joe', 'Thomas')"
   conn.Close
Excel 2007
  1. Στο Excel 2007, ξεκινήστε ένα νέο βιβλίο εργασίας.
  2. Προσθέστε τις ακόλουθες κεφαλίδες κελιά A1:B1 του Φύλλο1:

    A1: FirstName B1: επώνυμο
  3. Μορφοποιήστε το κελί B1 με δεξιά στοίχιση.
  4. Επιλέξτε A1:B1.
  5. Στην κορδέλα, κάντε κλικ στην επιλογή του Οι τύποι καρτέλα και στη συνέχεια κάντε κλικ Καθορίσετε όνομα. Πληκτρολογήστε το όνομα Η, και στη συνέχεια κάντε κλικ στο κουμπί OK.
  6. Αποθηκεύστε το νέο βιβλίο εργασίας ως C:\Book1.xlsx και στη συνέχεια κλείστε το Το Excel.
Για να προσθέσετε εγγραφές στον πίνακα Η με χρήση ADO, χρησιμοποιήστε κώδικα που μοιάζει με το ακόλουθο παράδειγμα κώδικα.
   'Create a new connection object for Book1.xls
   Dim conn As New ADODB.Connection
   conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
      "Data Source=C:\Book1.xlsx;Extended Properties=Excel 12.0;"
   conn.Execute "Insert into MyTable (FirstName, LastName)" & _
      " values ('Scott', 'Brown')"
   conn.Execute "Insert into MyTable (FirstName, LastName)" & _
      " values ('Jane', 'Dow')"
   conn.Close
Όταν προσθέτετε εγγραφές στον πίνακα με αυτόν τον τρόπο, τη μορφοποίηση του διατηρείται το βιβλίο εργασίας. Στο προηγούμενο παράδειγμα, τα νέα πεδία που προστέθηκαν στήλη b μορφοποιούνται με δεξιά στοίχιση. Κάθε εγγραφή που προστίθεται σε μια γραμμή δανείζεται η μορφή από γραμμή πάνω από αυτό.

Σημειώστε ότι όταν μια εγγραφή προστίθεται σε ένα κελί ή κελιά στο φύλλο εργασίας, αντικαθιστά οποιαδήποτε δεδομένα προηγουμένως σε αυτά τα κελιά. με άλλα λόγια, οι γραμμές στο φύλλο εργασίας δεν "μετακινούνται προς τα κάτω" όταν προστίθενται νέες εγγραφές. Πρέπει να λάβετε υπόψη κατά τη σχεδίαση του διάταξη δεδομένα των φύλλων εργασίας σας.

ΣημείωσηΗ μέθοδος για την ενημέρωση δεδομένων σε ένα φύλλο εργασίας του Excel, χρησιμοποιώντας το ADO ή DAO δεν λειτουργούν σε Visual Basic για εφαρμογή περιβάλλον μέσα πρόσβασης μετά την εγκατάσταση του Office 2003 Service Pack 2 (SP2) ή μετά την Εγκαταστήστε την ενημερωμένη έκδοση για την Access 2002 που είναι περιλαμβάνονται στο άρθρο της Γνωσιακής Βάσης της Microsoft 904018. Η μέθοδος λειτουργεί καλά στο Visual Βασικό περιβάλλον εφαρμογής από άλλες εφαρμογές του Office, όπως το Word, Το Excel και το Outlook. Για περισσότερες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
904953Δεν είναι δυνατό να αλλάξετε, να προσθέσετε ή να διαγράψετε δεδομένα σε πίνακες που συνδέονται με ένα βιβλίο εργασίας του Excel στην Office Access 2003 ή σε Η Access 2002
904018 Περιγραφή της ενημερωμένης έκδοσης για την Access 2002: 18 Οκτωβρίου 2005

Για πρόσθετες πληροφορίες σχετικά με τη χρήση του ADO για να αποκτήσετε πρόσβαση σε ένα βιβλίο εργασίας του Excel, δείτε το ακόλουθο τα άρθρα της Γνωσιακής Βάσης της Microsoft:
195951 Με την υποβολή ερωτημάτων και την ενημέρωση των δεδομένων του Excel χρησιμοποιώντας το ADO από ASP

Χρήση DDE για τη μεταφορά δεδομένων στο Excel

DDE είναι μια εναλλακτική λύση για την αυτοματοποίηση ως μέσο για την επικοινωνία με το Excel και τη μεταφορά δεδομένων. Ωστόσο, με την έλευση της αυτοματοποίησης και COM, DDE δεν είναι πλέον η προτιμώμενη μέθοδος για την επικοινωνία με άλλους εφαρμογές και πρέπει να χρησιμοποιείται μόνο όταν δεν υπάρχει διαθέσιμη καμία άλλη λύση Για να το κάνετε.

Για να μεταφέρετε τα δεδομένα στο Excel χρησιμοποιώντας DDE, μπορείτε:
  • Χρήση του LinkPoke η μέθοδος poke δεδομένων σε μια συγκεκριμένη περιοχή κελιά,

    - ή -
  • Χρήση του LinkExecute μέθοδος για την αποστολή εντολών Excel θα εκτελέσει.
Το ακόλουθο παράδειγμα κώδικα δείχνει τον τρόπο δημιουργίας ενός DDE συνομιλία με το Excel ώστε να poke δεδομένων σε κελιά σε ένα φύλλο εργασίας και εκτέλεση εντολών. Χρησιμοποιώντας αυτό το δείγμα για συνομιλία DDE είναι με επιτυχία με το LinkTopic Excel|MyBook.xls, ένα βιβλίο εργασίας με το όνομα MyBook.xls ήδη πρέπει να ανοιχτεί στο εκτελούνται παρουσία του Excel.

Σημείωση Όταν χρησιμοποιείτε το Excel 2007, μπορείτε να χρησιμοποιήσετε τη νέα μορφή αρχείου .xlsx για να αποθηκεύσετε τα βιβλία εργασίας. Βεβαιωθείτε ότι μπορείτε να ενημερώσετε το όνομα αρχείου στο παρακάτω παράδειγμα κώδικα.

Σημείωση Στο παράδειγμα αυτό, Κείμενο1 αντιπροσωπεύει ένα Πλαίσιο κειμένου ελέγχου σε μια φόρμα της Visual Basic:
   'Initiate a DDE communication with Excel
   Text1.LinkMode = 0
   Text1.LinkTopic = "Excel|MyBook.xls"
   Text1.LinkItem = "R1C1:R2C3"
   Text1.LinkMode = 1
   
   'Poke the text in Text1 to the R1C1:R2C3 in MyBook.xls
   Text1.Text = "one" & vbTab & "two" & vbTab & "three" & vbCr & _
                "four" & vbTab & "five" & vbTab & "six"
   Text1.LinkPoke
   
   'Execute commands to select cell A1 (same as R1C1) and change the font
   'format
   Text1.LinkExecute "[SELECT(""R1C1"")]"
   Text1.LinkExecute "[FONT.PROPERTIES(""Times New Roman"",""Bold"",10)]"
   
   'Terminate the DDE communication
   Text1.LinkMode = 0
Κατά τη χρήση LinkPoke με το Excel, καθορίστε την περιοχή σε μορφή γραμμή-στήλη (R1C1) για το LinkItem. Εάν όταν δεδομένα σε πολλά κελιά, μπορείτε να χρησιμοποιήσετε μια συμβολοσειρά όπου οι στήλες οριοθετούνται με καρτέλες και οι γραμμές οριοθετούνται με μεταφορά Επιστρέφει.

Όταν χρησιμοποιείτε LinkExecute Για να ζητήσετε από το Excel για να εκτελέσετε μια εντολή, πρέπει να δώσετε Excel το εντολή στη σύνταξη του το Excel Macro Language (XLM). Τεκμηρίωση XLM δεν περιλαμβάνεται σε εκδόσεις του Excel 97 και νεότερες εκδόσεις. Για περισσότερες πληροφορίες σχετικά με τον τρόπο Μπορείτε να αποκτήσετε τεκμηρίωση XLM, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακή Βάση της Microsoft:
143466 Αρχείο Macro97.exe είναι διαθέσιμες από ηλεκτρονικές υπηρεσίες
DDE δεν είναι μια προτεινόμενη λύση για επικοινωνία με το Excel. Αυτοματοποίηση παρέχει μεγαλύτερη ευελιξία και σας δίνει περισσότερο η πρόσβαση στις νέες δυνατότητες που προσφέρει Excel.

Αναφορές

Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο Γνωσιακή Βάση της Microsoft:
306022Τρόπος μεταφοράς δεδομένων σε ένα βιβλίο εργασίας του Excel χρησιμοποιώντας τη Visual Basic.NET

Ιδιότητες

Αναγν. άρθρου: 247412 - Τελευταία αναθεώρηση: Πέμπτη, 6 Οκτωβρίου 2011 - Αναθεώρηση: 7.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Visual Basic for Applications 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
Λέξεις-κλειδιά: 
kbautomation kbdde kbinfo kbmt KB247412 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:247412

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com