Excel VBA FreeFile

Cât de des este un utilizator Excel, deschideți un fișier și lucrați la același lucru? Foarte des, nu? Este din nou posibilă automatizarea sarcinilor de deschidere a fișierului în Excel folosind un instrument VBA puternic care vă permite să scrieți macro-uri și, în final, automatizează toate sarcinile începând de la deschiderea unui fișier dintr-o anumită locație pentru a-l utiliza, salva și închide pe același cale. În timp ce vorbim despre automatizarea procesului de deschidere și închidere a fișierului prin VBA, devine foarte important să indexăm fișierul, astfel încât sistemul să poată identifica ce fișier să folosească în momentul executării. Avem o funcție disponibilă în cadrul VBA numită FreeFile, care servește acestui scop.

Ce este funcția VBA FreeFile?

VBA FreeFile este o funcție clasificată în funcția VBA, care permite sistemului să-și rezerve un număr pentru următorul fișier care va fi deschis sub ieșirea de intrare a fișierelor VBA pentru o experiență de codare lină și reducerea erorilor inutile din codul dvs. Când deschideți un fișier prin VBA File IO (intrare / ieșire), devine absolut obligatoriu să atribuiți un număr unic acelui fișier, deoarece este posibil să aveți mai multe fișiere în locația pe care urmează să o utilizați pentru a citi, scrie și deschide scopul prin cod. De unde știe sistemul ce fișier din toate cele pe care doriți să le deschideți? Funcția VBA FreeFile identifică numărul unic pe care îl atribuim fișierului și îl face disponibil pentru a vă deschide, citi sau scrie în VBA.

Sintaxa funcției FreeFile este următoarea:

Această funcție ia doar un argument RangeNumber care are valorile standard ca zero (0) și unu (1). Dacă specificați zero, numărul fișierului va fi atribuit în intervalul de numere 1 până la 255 treptat pentru fiecare fișier pe care îl deschideți. Dacă specificați unul, numărul fișierului va fi atribuit în intervalul 256 până la 511 în trepte pentru fiecare fișier pe care îl deschideți. Dacă nu este specificat niciun RangeNumber, zero va fi considerat implicit.

Cum se utilizează funcția FreeFile în Excel VBA?

Mai jos sunt diferite exemple pentru a utiliza funcția FreeFile în Excel VBA.

Puteți descărca acest șablon VBA FreeFile Excel aici - șablonul VBA FreeFile Excel

VBA FreeFile - Exemplul # 1

Urmați pașii de mai jos pentru a utiliza funcția FreeFile în Excel VBA.

Pasul 1: Deschideți un nou editor Visual Basic (VBE) făcând clic pe butonul Visual Basic sub fila Dezvoltator prezentă în fișierul dvs. Excel sau apăsând simultan butonul Alt + F11 .

Pasul 2: Introduceți un nou modul în VBE. Faceți clic pe butonul Insert . Selectați Modul din lista de opțiuni disponibile în Insert.

Pasul 3: Definiți o nouă sub-procedură care vă poate reține macro.

Cod:

 Sub Exemplu_1 () Final Sub 

Pasul 4: Definiți două variabile noi, fișier_1 și fișier_2 ca număr întreg. Aceste două variabile vor conține numerele pe care le atribuim fiecărui fișier pe care îl deschidem în întreaga macro.

Cod:

 Sub Exemplu_1 () Dim fișier_1 Ca număr întreg Fișier Dim_2 Ca subdiferent întreg 

Pasul 5: Utilizați operatorul de alocare pentru a atribui valoarea întreagă 1 la variabila file_1 cu ajutorul VBA FreeFile.

Cod:

 Sub Exemplu_1 () Dim fișier_1 Ca număr întreg Fișier Dim_2 Ca număr întreg fișier_1 = Fișier final final sub 

Pasul 6: Acum, utilizați instrucțiunea Open care poate fi folosită pentru a deschide un fișier în VBA.

Cod:

 Sub Exemplu_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Pentru ieșire ca fișier_1 Final Sub 

Aici, am specificat calea pe care se află fișierul. Instrucțiunea For vă oferă opțiuni precum modul în care doriți să deschideți fișierul (de exemplu, ca ieșire) și instrucțiunea As specifică numărul de fișier pe care l-am specificat folosind instrucțiunea FreeFile.

Pasul 7: Urmați Pasul 5 și Pasul 6 pentru a atribui un număr nou celui de-al doilea fișier prin variabila file_2 și deschideți-l.

Cod:

 Sub Exemplu_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Pentru ieșire ca file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Pentru ieșire Ca fișier_2 End Sub 

Pasul 8: Acum, am dori să vedem numerele care sunt de fapt atribuite ambelor fișiere text. Puteți rula fiecare linie una câte una cu ajutorul tastei F8. Cu toate acestea, ieșirea nu vă va fi vizibilă. Nici în fișierul Excel, nici în fereastra Imediat. Vă rugăm să adăugați următoarea declarație MsgBox care apare o casetă de mesaj cu numerele pentru fiecare fișier.

Cod:

 Sub Exemplu_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Pentru ieșire ca file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Pentru ieșire Ca file_2 MsgBox "Valoarea pentru file_1 este:" & file_1 & Chr (13) & "Valoarea pentru file_2 este:" & file_2 End Sub 

În această linie de cod, prima linie a căsuței de mesaj va conține textul „valoarea pentru fișier_1 este:„ și valoarea numerică atribuită folosind funcția FreeFile. Chr (13) permite apariția următoarei linii. Următoarea linie a căsuței de mesaje va citi „Valoarea pentru fișier_2 este:” și numărul alocat celui de-al doilea fișier.

Pasul 9: Rulați acest cod apăsând butonul Run sau apăsând tasta F5.

Astfel funcția FreeFile vă permite să alocați numărul fișierului pe care urmează să îl deschideți, să îl citiți, să îl închideți prin VBA.

VBA FreeFile - Exemplul # 2

Dacă închidem fișierul pe care îl deschidem de fiecare dată, atunci noul fișier pe care îl deschidem va avea întotdeauna un număr de serie ca 1 la fiecare deschidere. Urmați pașii de mai jos pentru a vedea.

Pasul 1: Definiți o nouă sub-procedură care vă poate reține macro.

Cod:

 Sub Exemplu_2 () End Sub 

Pasul 2: Definiți două variabile file_1 și file_2 ca un număr întreg în cadrul subprocedurii nou definite.

Cod:

 Sub Exemplu_2 () Dim fișier_1 Ca număr întreg Fișier Dim_2 Ca subdiferent întreg 

Pasul 3: Acum, utilizați FreeFile pentru a atribui un număr fișierului dat și instrucțiunea Open pentru a deschide acel fișier prin locația în care îl avem.

Cod:

 Sub Exemplu_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Pentru ieșire ca fișier_1 Final Sub 

Pasul 4: Utilizați o instrucțiune MsgBox pentru a adăuga o casetă de mesaj pentru numărul primelor fișiere.

Cod:

 Sub Exemplu_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Out As File_1 MsgBox "Valoarea pentru file_1 este:" & file_1 End Sub 

Pasul 5: Utilizați o declarație Închideți pentru a închide primul fișier pe care l-ați deschis prin VBA.

Cod:

 Sub Exemplu_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Out As File_1 MsgBox "Valoarea pentru file_1 este:" & file_1 Închideți file_1 End Sub 

Pasul 6: Acum, urmați aceeași procedură ca la pasul 5, pasul 6, pasul 7, dar pentru al doilea fișier. Include atribuirea valorii variabilei file_2 folosind funcția FreeFile și deschiderea acesteia cu ajutorul instrucțiunii Open, folosind MsgBox pentru a afișa numărul de fișier pentru cel de-al doilea fișier și închiderea finală a celui de-al doilea fișier.

Cod:

 Sub Exemplu_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Out As File_1 MsgBox "Valoarea pentru file_1 este:" & file_1 Închideți file_1 file_2 = FreeFile Open "D : \ Excel Content Writing \ TextFile_2.txt "Pentru ieșire ca fișier_2 MsgBox" Valoarea pentru file_2 este: "& file_2 Închideți fișier_2 Sub final 

Pasul 7: Rulați acest cod apăsând butonul Run sau F5.

Prima casetă de mesaj reprezintă valoarea fișierului_1 care pare a fi 1. A doua casetă de mesaj reprezintă valoarea fișierului_2 care pare să fie de asemenea 1. Această modificare este acolo, deoarece am folosit instrucțiunea de închidere pentru a închide fișierele unul câte unul. Datorită căruia, la inițierea unui nou fișier, de fiecare dată fișierul vechi și numărul este dispărut din memoria sistemului și următorul fișier va fi considerat un fișier nou, cu numere începând de la 1.

Lucruri de amintit

  • FreeFile returnează un număr întreg unic la fiecare fișier pe care îl deschidem, îl citim, îl închidem prin VBA File IO.
  • FreeFile are două valori pentru argumentul RangeNumber (care este opțional). De obicei, Zero atribuie numărul între intervalul 1 până la 255 și unul atribuie numerele de la 256 la 511.

Articole recomandate

Acesta este un ghid pentru VBA FreeFile. Aici vom discuta despre modul în care funcția FreeFile vă permite să alocați numărul fișierului pe care urmează să îl deschideți, să îl citiți, să îl închideți prin Excel VBA, împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Există fișiere de verificare VBA | Șablon Excel
  2. Abonament VBA în afara domeniului (Exemple)
  3. Funcția GetObject în Excel VBA
  4. Cum se folosește formatul de număr în VBA?
  5. VBA Environ

Categorie: