| Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| ||||
| ||||
|
Καλημέρα σας Πως μπορώ να διαβάσω το περιεχόμενο του κελιού π.χ C2 που βρίσκεται στο 3ο φύλλο ενός αρχείου Excel ; ...Προσπάθησα να κάνω Connection Access-Excel, σύμφωνα με τα περιεχόμενα της βοήθειας που προσφέρει η access, Κώδικας: Dim cnn As New ADODB.Connection κλπ ![]() Χρειάζομαι τη βοήθειά σας / Νίκος Δ. Υστερολόγιο: Η λύση που έχω αυτή τη στιγμή έχει ως εξής: Μεταφέρω μια -κατάλληλη- γραμμή από το Excel σε κάποιο πίνακα-βοηθό και μετά διαβάζω την τιμή που επιθυμώ από πεδίο αυτού του πίνακα. Αυτή τη λύση δεν με ικανοποιεί. |
|
#2
|
|
Νίκο καλησπέρα! Αφου πρόκειται να εισάγεις μεμονωμένα κελιά εκτός από τη χρήση ADO ή DAΟ, μπορείς να χρησιμοποιήσεις την παλιά αλλά λειτουργική μέθοδο "ExecuteExcel4Macro" της Excel. Ο παραδειγματικός κώδικας παρακάτω μας δείχνει πως γίνεται: Κώδικας: 'Πρόσθεσε τις παρακάτω αναφορές στον VBE _
(Tools >References > Microsoft Excel XX.0 Object Library):
'αναφορά για την Excel: Microsoft Excel XX.0 Object Library
'αναφορά για to Microsoft Office: Microsoft Office XX.0 Object Library
Option Compare Database
Option Explicit
Dim XL As New Excel.Application
Sub Test_For_XL_Cell_C2_Value()
With XL.Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add "Excel files", "*.xl*"
If .Show Then
MsgBox XLCellValue(.SelectedItems(1), "MySheet", "C2")
'MySheet = το όνομα του φύλλου και "C2" = το κελί
End If
End With
End Sub
Function XLCellValue(XlBookFullName As String, _
XlSheetName As String, _
CellAddress As String)
Dim arg As String, XLDir As String, ConvCellAddress As String, SheetFound As Boolean
On Error Resume Next
XLDir = Dir(XlBookFullName, 16)
If XLDir = vbNullString Then
XLCellValue = "Could not access the Workbook '" & XlBookFullName & "' !"
Exit Function
End If
arg = "'" & Replace(XlBookFullName, XLDir, vbNullString)
arg = arg & "[" & XLDir & "]" & XlSheetName & "'!"
ConvCellAddress = Replace(XL.ConvertFormula("=" & CellAddress, xlA1, -4150, True), "=", vbNullString)
SheetFound = Not IsError(XL.ExecuteExcel4Macro(arg & ConvCellAddress))
If Not SheetFound Then
XLCellValue = "Could not find the sheet '" & XlSheetName & "' !"
Exit Function
Else
XLCellValue = XL.ExecuteExcel4Macro(arg & ConvCellAddress)
End If
If Err <> 0 Then
XLCellValue = Err & " " & Err.Description
Exit Function
End If
If Trim(XLCellValue) = vbNullString Then XLCellValue = "The Cell '" & CellAddress & "' has no Value!"
End Function
Τα λέμε Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 07-06-10 στις 11:54. |
|
#3
| ||||
| ||||
|
Καλημέρα φίλοι μου... Η σκέψη μου ήταν να αποκτήσω μερικές γνώσεις που αφορούν τον έλεγχο αρχείων Excel, μέσα απο περιβάλλον εφαρμογής Access. Όχι πλήρη έλεγχο, αλλά να μπορώ να διαβάσω το περιεχόμενο ενός κελιού, να μπορώ να μετρήσω το πλήθος των γραμμών, να εντοπίζω τη max τιμή σε κάποια στήλη, ... Ο κώδικας που ανέβασε ο Τάσος -πέρα απο την ολότητά του- μας παρουσιάζει αρκετά 'σημεία' ενδιαφέροντα. Δεν το κρύβω οτι για μένα ειναι ένας βαρύς κώδικας και χρειάζoμαι ...σόδα! Οι τεχνικές DAO , ADO χρειάζονται κάποιες αναφορές στον VBE ή έχουν ήδη οριστεί; Τάσο να είσαι καλά. Μαθαίνω από σένα...ευχαριστώ... Φιλικά / Νίκος Δ. |
|
#4
|
|
Νίκο καλησπέρα! Μπορείς να χρησιμοποιήσεις τον παρακάτω κώδικα σε απλοποιημένη μορφή για να διαβάζεις το κελί "C2": Κώδικας: Sub GetXLCellData()
Dim rs As Object
With OpenDatabase("C:\Users\Admin\Desktop\test.xls", False, True, "Excel 8.0;HDR=Yes;")
Set rs = .OpenRecordset("SELECT Top 1 * FROM [Sheet1$]")
If rs.RecordCount Then MsgBox rs.Fields(2)
rs.Close
End With
End Sub
Τα λέμε... Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 07-06-10 στις 14:26. |
|
#5
| ||||
| ||||
|
Καλησπέρα... Τάσο αυτή η ρουτίνα είναι κατανοητή πλήρως και ...πλούσια σε πληροφοριακό υλικό. Φανταστική! Είναι απίστευτο... Έχω στα χέρια μου ένα εργαλείο να 'βλέπω' μέσα στο Excel. Σκέπτομαι να έχω τα στοιχεία των εκπαιδευτικών του σχολείου μου σε εφαρμογή Access - να φορτώνω με αυτά μια φόρμα Excel υπολογισμού πχ υπερωριών (προκαθορισμένη από την διεύθυνση) και να τυπώνω καταστάσεις πληρωμών έχοντας πλήρη έλεγχο! Τάσο να είσαι καλά εσύ και η οικογένειά σου... Καλό σας βράδυ φίλε μου |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Διάβασμα τιμής από σειριακή θύρα | vassilism | Access - Ερωτήσεις / Απαντήσεις | 4 | 10-01-12 12:46 |
| Διάβασμα τιμής από αρχείο txt | vassilism | Access - Ερωτήσεις / Απαντήσεις | 4 | 02-11-11 16:50 |
| [Συναρτήσεις] Διάσπαση περιεχομένου κελιού σε άλλα. | ΤΖΙΜΗΣ | Excel - Ερωτήσεις / Απαντήσεις | 6 | 27-06-11 16:56 |
| [Access - VBA] Αντιγραφή περιεχομένου κελιού σε άλλο κελί | Meteora | Visual Basic for Applications (VBA) | 4 | 09-09-10 16:31 |
| Διάβασμα τιμής απο πεδίο του 1ου Record ενός πίνακα - DAO | Meteora | Access - Ερωτήσεις / Απαντήσεις | 1 | 10-04-09 14:25 |
Η ώρα είναι 16:00.




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

