Excel VBA FreeFile

Koliko često kao korisnik Excela otvarate datoteku i radite na istoj? Vrlo često, zar ne? Ponovno je moguće automatizirati zadatke otvaranja datoteke u Excelu pomoću moćnog alata VBA koji vam omogućuje pisanje makronaredbi i na kraju automatizira sve zadatke počevši od otvaranja datoteke s određene lokacije da biste je koristili, spremili i zatvorili na istoj staza. Dok govorimo o automatizaciji procesa otvaranja i zatvaranja datoteka putem VBA, postaje vrlo važno indeksirati datoteku kako bi sustav mogao prepoznati koju datoteku treba koristiti u trenutku izvršenja. Imamo funkciju dostupnu u VBA pod nazivom FreeFile koja služi u tu svrhu.

Što je funkcija VBA FreeFile?

VBA FreeFile je funkcija koja je kategorizirana pod VBA funkcijom koja omogućuje sustavu da rezervira broj za sljedeću datoteku koja će se otvoriti pod VBA izlazni unos datoteke za glatko iskustvo kodiranja i smanjenje nepotrebnih pogrešaka u vašem kodu. Kada otvorite datoteku putem VBA datoteke IO (ulaz / izlaz), postane apsolutno obavezno dodijeliti jedinstveni broj toj datoteci, jer možda imate više datoteka na lokaciji koju namjeravate koristiti za čitanje, pisanje i otvaranje kroz svoju kodirati. Kako sustav zna koja je datoteka iz svih onih koje želite otvoriti? Funkcija VBA FreeFile identificira jedinstveni broj koji dodijelimo datoteci i omogućuje vam otvaranje, čitanje ili pisanje u VBA.

Sintaksa za funkciju FreeFile je dolje navedena:

Ova funkcija uzima samo jedan argument RangeNumber koji ima standardne vrijednosti nula (0) i jedan (1). Ako odredite nulu, broj datoteke dodijelit će se postupno kroz raspon brojeva od 1 do 255 za svaku datoteku koju otvorite. Ako je odredite, broj datoteke dodijelit će se postupno kroz raspon 256 do 511 za svaku datoteku koju otvorite. Ako nije naveden RangeNumber, nula će se smatrati zadanom.

Kako se koristi funkcija FreeFile u Excelu VBA?

Ispod su sljedeći primjeri za korištenje funkcije FreeFile u Excelu VBA.

Možete preuzeti ovaj predložak VBA FreeFile Excel ovdje - VBA predložak FreeFile Excel

VBA FreeFile - Primjer # 1

Slijedite dolje navedene korake za upotrebu funkcije FreeFile u Excelu VBA.

Korak 1: Otvorite novi Visual Basic Editor (VBE) klikom na gumb Visual Basic ispod kartice Developer prisutan u vašoj Excelovoj datoteci ili istovremeno pritiskom na gumb Alt + F11 .

Korak 2: U VBE umetnite novi modul. Kliknite gumb Umetanje . Odaberite Modul s popisa opcija dostupnih u Insert.

Korak 3: Definirajte novi pod-postupak koji može sadržavati vaš makronaredbu.

Kodirati:

 Sub Primjer_1 () Kraj Sub 

Korak 4: Definirajte dvije nove varijable, file_1 i file_2 kao cijeli broj. Te dvije varijable sadržavat će brojeve koje dodijelimo svakoj datoteci koju otvorimo u makronaredbi.

Kodirati:

 Primjer_1 () Dim datoteka_1 Kao cijela Dim datoteka_2 Kao cjelobrojni kraj Pod 

Korak 5: Pomoću VBA FreeFile koristite operatora dodjele da biste dodijelili cjelobrojnu vrijednost 1 datoteci_1 varijabli.

Kodirati:

 Sub example_1 () Dim file_1 Kao Integer Dim file_2 Kao Integer file_1 = FreeFile End Sub 

Korak 6: Sada koristite izjavu Open koja se može koristiti za otvaranje datoteke u VBA.

Kodirati:

 Sub example_1 () Dim file_1 Kao cijela datoteka Dim_2_2 Kao cijela datoteka_1 = FreeFile Otvori "D: \ Pisanje sadržaja Excel \ TextFile_1.txt" Za izlaz kao datoteku_1 Završi pod 

Ovdje smo odredili put na kojem se datoteka nalazi. Izjava For daje vam opcije poput načina na koji želite otvoriti datoteku (npr. Kao izlaz), a izjava As navodi broj datoteke koji smo odredili pomoću FreeFile izjave.

Korak 7: Slijedite Korak 5 i Korak 6 dodijelite novi broj drugoj datoteci pomoću varijable file_2 i otvorite je.

Kodirati:

 Pod primjer_1 () Dim file_1 kao cijela dim datoteka_2 kao cijela datoteka_1 = = otvorena datotekaF "D: \ Pisanje sadržaja Excela \ TextFile_1.txt" Za izlaz kao datoteka_1 datoteka_2 = FreeFile Otvori "D: \ Pisanje sadržaja programa Excel \ TextFile_2.txt" za izlaz Kao datoteka_2 Kraj sub 

Korak 8: Sada bismo željeli vidjeti brojeve koji su zapravo dodijeljeni obema tekstualnim datotekama. Svaki redak možete pokrenuti jedan po jedan uz pomoć tipke F8. Međutim, izlaz vam neće biti vidljiv. Ni u Excelovoj datoteci ni u neposrednom prozoru. Dodajte sljedeću izjavu MsgBox koja prikazuje okvir za poruke s brojevima za svaku datoteku.

Kodirati:

 Pod primjer_1 () Dim file_1 kao cijela dim datoteka_2 kao cijela datoteka_1 = = otvorena datotekaF "D: \ Pisanje sadržaja Excela \ TextFile_1.txt" Za izlaz kao datoteka_1 datoteka_2 = FreeFile Otvori "D: \ Pisanje sadržaja programa Excel \ TextFile_2.txt" za izlaz Kao file_2 MsgBox "Vrijednost za file_1 je:" & file_1 & Chr (13) i "Vrijednost za datoteku_2 je:" & file_2 Kraj pot 

U ovom retku koda prvi će okvir poruke sadržavati tekst „vrijednost za file_1 je:“ i brojčana vrijednost dodijeljena funkcijom FreeFile. Chr (13) omogućuje pojavljivanje sljedećeg retka. Sljedeći redak okvira za poruku glasi "Vrijednost za datoteku_2 je:" i broj dodijeljen drugoj datoteci.

Korak 9: Pokrenite ovaj kôd pritiskom na tipku Run ili pritiskom na tipku F5.

Ovako vam funkcija FreeFile omogućava da dodijelite broj datoteci koju ćete otvoriti, pročitati, zatvoriti putem VBA.

VBA FreeFile - primjer br. 2

Ako datoteku zatvorimo svaki put, nova datoteka koju otvorimo uvijek će imati serijski broj kao svaki put kad se otvori. Slijedite korake u nastavku kako biste ga vidjeli.

Korak 1: Definirajte novi podpostupak koji može sadržavati vaš makronaredbu.

Kodirati:

 Sub Primjer_2 () Kraj Sub 

Korak 2: Definirajte dvije varijable file_1 i file_2 kao cijeli broj unutar novo definiranog potpostupka .

Kodirati:

 Sub Primjer_2 () Dim file_1 Kao In inteer Dim file_2 Kao Integer End Sub 

Korak 3: Sada pomoću FreeFile dodijelite broj datoj datoteci, a Open statement otvorite tu datoteku na mjestu na kojem je imamo.

Kodirati:

 Pod-primjer_2 () Dim file_1 Kao cijela Dim datoteka_2 Kao cijela datoteka_1 = OpenFile Otvori "D: \ Pisanje sadržaja Excel \ TextFile_1.txt" Za izlaz kao datoteku_1 Završetak 

Korak 4: Upotrijebite MsgBox izjavu za dodavanje okvira s porukama za broj prvih datoteka.

Kodirati:

 Pod-primjer_2 () Dim file_1 Kao cjelovita datoteka Datoteka_2 Kao cijela datoteka_1 = OpenFile Otvori "D: \ Pisanje sadržaja Excel \ TextFile_1.txt" Za izlaz kao datoteku_1 MsgBox "Vrijednost za datoteku_1 je:" i datoteka_1 Završetak Pod 

Korak 5: Isključite izjavu za zatvaranje prve datoteke koju ste otvorili putem VBA.

Kodirati:

 Sub example_2 () Dim file_1 Kao Integer Dim file_2 Kao Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Za izlaz kao file_1 MsgBox "Vrijednost za file_1 je:" & file_1 Zatvori datoteku_1 End Sub 

Korak 6: Sada slijedite isti postupak kao u 5. koraku, 6. koraku, 7. koraku, ali za drugu datoteku. To uključuje dodjeljivanje vrijednosti varijabli file_2 pomoću funkcije FreeFile i otvaranje uz pomoć izjave Open, korištenje MsgBox za prikaz broja datoteke za drugu datoteku i konačno zatvaranje druge datoteke.

Kodirati:

 Pod primjer_2 () Dim file_1 Kao cjelovita datoteka Datoteka_2 Kao cijela datoteka_1 = OpenFile Otvori "D: \ Excel sadržaj pisanja \ TextFile_1.txt" Za izlaz kao datoteku_1 MsgBox "Vrijednost za datoteku_1 je:" & datoteka_1 Zatvori datoteku_1 datoteka_2 = Slobodna datoteka otvori "D : \ Excel Content Writing \ TextFile_2.txt "Za izlaz kao datoteku_2 MsgBox" Vrijednost za datoteku_2 je: "& file_2 Zatvori datoteku_2 Kraj Sub 

Korak 7: Pokrenite ovaj kôd pritiskom na tipku Run ili F5.

Prvi okvir za poruku predstavlja vrijednost datoteke_1 koja se čini 1. 1. Drugi okvir za poruku predstavlja vrijednost datoteke_2 koja se također čini da je 1. Ova promjena postoji jer smo koristili izravnu izjavu da zatvorimo datoteke jednu po jednu. Zbog čega se, prilikom pokretanja nove datoteke, svaki put kad nestane stara datoteka i njen broj iz sistemske memorije i sljedeća datoteka smatrat će se svježom datotekom s brojevima koji počinju od 1.

Stvari koje treba zapamtiti

  • FreeFile vraća jedinstveni cijeli broj svakoj datoteci koju otvorimo, čitamo, zatvorimo kroz VBA datoteku IO.
  • FreeFile ima dvije vrijednosti za argument RangeNumber (koji nije obavezan). Nula obično dodjeljuje broj između raspona 1 do 255, a jedan dodjeljuje brojeve od 256 do 511.

Preporučeni članci

Ovo je vodič za VBA FreeFile. Ovdje smo raspravljali o tome kako vam funkcija FreeFile omogućava da dodijelite broj datoteci koju ćete otvoriti, pročitati, zatvoriti kroz Excel VBA zajedno s praktičnim primjerima i besplatnim excel predložakom. Možete i pregledati naše druge predložene članke -

  1. VBA Provjera datoteke postoji | Predložak Excela
  2. VBA pretplata izvan dometa (primjeri)
  3. Funkcija GetObject u Excelu VBA
  4. Kako koristiti format broja u VBA?
  5. VBA okružje

Kategorija: