| Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπερα σε ολους! εχω τον παρακατω κωδικα για να δημιουργησω ενα φακελο με το ονομα μιας μεταβλητης "pvafm" και θελω εναν υποφακελο μεσα στον "pvafm" με το ονομα "pvetos" αλλα με χτυπαει σφαλμα "path no found"... ο κωδικας... Dim fso Dim fol As String fol = "c:\" & pvafm & " " Set fso = CreateObject("Scripting.FileSystemObject") If Not (fso.FolderExists(fol)) Then fso.CreateFolder (fol) End If Dim fso2 Dim subfol As String subfol = "c:\" & pvafm & " \" & pvetos & " " Set fso2 = CreateObject("Scripting.FileSystemObject") If Not (fso2.FolderExists(subfol)) Then fso2.CreateFolder (subfol) End If τον πρωτο φακελο μου τον δημιουργει κανονικα,αλλα βγαζει debug στην προτελευταια γραμμη κωδικα " fso2.CreateFolder (subfol)" που ειναι το λαθος??? |
|
#2
|
|
Καλησπέρα Θοδωρή! Θα σου πρότεινα να χρησιμοποιήσεις το παρακάτω: Κώδικας: Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal lpPath As String) As Long
Sub test()
MakeSureDirectoryPathExists "C:\Διαδρομή αρχείου ή φακέλου\"
' Αν πρόκειται για διαδρομή φακέλου, η συμβολοσειρά του ορίσματος πρέπει να καταλήγει πάντα σε "\"
' δηλαδή: C:\Διαδρομή αρχείου ή φακέλου και ο χαρακτήρας "\"
' Για να καλύψουμε το ενδεχόμενο συντακτικού λάθους,
'που ίσως προκληθεί με την ενοποίηση μεταβλητών , κατά το χτίσιμο της διαδρομής,
' μπορούμε να χρησιμοποιήσουμε κάτι όπως το παρακάτω:
' xArgument = Replace("C:\" & VarΔιαδρομή & "\","\\", "\")
End Sub
Αν δεν υπάρχει ή διαδρομή, η παραπάνω συνάρτηση θα την δημιουργήσει εφ όσον βέβαια το επιτρέπουν οι ρυθμίσεις δικαιώματων πρόσβασης του τρέχοντος λογαριασμού Windows. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 05-07-10 στις 10:46. |
|
#3
| ||||
| ||||
|
Φίλε Θοδωρή, σαφώς και η MakeSureDirectoryPathExists είναι η καλύτερη λύση για το θέμα σου όμως έχει αρκετό ενδιαφέρον μια τέτοια υλοποίηση χωρίς "εξωτερική" βοήθεια. Δοκίμασε λοιπόν και την παρακάτω αναδρομική διαδικασία η οποία κάνει σχεδόν την ίδια δουλειά με την MakeSureDirectoryPathExists. Κώδικας: Sub SecurePath(strPath As String)
Static stintPos As Integer
Dim strDir As String
If Right(strPath, 1) <> "\" Then
strPath = strPath & "\"
End If
stintPos = InStr(stintPos + 1, strPath, "\")
If stintPos > 0 Then
strDir = Left(strPath, stintPos)
If Len(Dir(strDir, vbDirectory)) = 0 Then
MkDir (strDir)
End If
SecurePath strPath
End If
stintPos = 0
End Sub
Κώδικας: SecurePath "C:\Folder1\Folder2\Folder3\Folder4\Folder5" Γιάννης
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ![]() ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
|
#4
| |||
| |||
|
τασο και γιαννη αν μπορουσατε λιγο πιο λεπτομερεστερα το που θα γραψω αυτους τους κωδικες απο την στιγμη που αυτες τις ενεργιες που θελω να γινουν, δημιουργια κ ελεγχος φακελων αν υπαρχουν γινετε μετα απο after update 2 δημοσιων μεταβλητων pvafm και pvetos και βαση αυτων δημιουργουνται οι φακελοι,με τα ονοματα αυτων πχ pvafm="343545646" ,pvetos="2010" σε μια διαδρομη πχ "c:\343545646\2010\ ... φιλικα/θοδωρης |
|
#5
|
|
Καλημέρα σε όλους! Αγαπητέ Θοδωρή, Χαιρέτα μας και... μη μας αγαπάς! ![]() ![]() Στη μια λειτουργική μονάδα δηλώνεις τις (δημόσιες) μεταβλητές σου καθώς και τις σταθερές όπως φαίνεται παρακάτω: Κώδικας: Option Compare Database Option Explicit Public Const PathPrefix As String = "C:" Public Const PS As String = "\" 'PathSeparator Public pvafm As String Public pvetos As String μπορείς να χρησιμοποιήσεις το παρακάτω παράδειγμα: Κώδικας: Private Sub cmdMyButton_Click()
Dim strPath As String
pvafm = "343545646" 'ή την τιμή από κάποιο πλαίσιο κειμένου
pvetos = "2010" 'ή την τιμή από κάποιο πλαίσιο κειμένου
strPath = Replace( _
PathPrefix & _
PS & _
pvafm & _
PS & _
pvetos & _
PS, _
PS & PS, PS)
MakeSureDirectoryPathExists strPath
' ή
SecurePath strPath
End Sub
Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 11-07-10 στις 19:14. |
|
#6
| |||
| |||
|
Τασο καλημερα,οπως επισης κ στα υπολοιπα παιδια του φορουμ... εχω παθει πλακα εδω μεσα με την ανταποκριση σας,μπραβο! θα το δοκιμασω τον κωδικα κ θα επανελθω... φιλικα θοδωρης |
|
#7
| |||
| |||
|
καλημερα! Ευχαριστω παιδια ειστε φοβεροι! δουλεψε! |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Πρόβλημα με δημιουργία newsletter | pm4698 | Outlook - Ερωτήσεις / Απαντήσεις | 6 | 30-08-11 11:36 |
| [Γενικά] Δημιουργία κουμπιού και δημιουργία νέας λίστας | sethii | Excel - Ερωτήσεις / Απαντήσεις | 3 | 31-03-11 08:52 |
Η ώρα είναι 15:54.






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

