Exceli VBA FreeFile

Kui sageli olete Exceli kasutaja, avate faili ja töötate samaga? Väga sageli, eks? Faili avamise ülesandeid on Excelis jällegi võimalik automatiseerida võimsa tööriista VBA abil, mis võimaldab teil makrosid kirjutada ja automatiseerib lõpuks kõik toimingud alates faili avamisest antud kohast, et seda kasutada, salvestada ja sulgeda tee. Rääkides faili avamise ja sulgemise protsessi automatiseerimisest läbi VBA, muutub väga oluliseks faili indekseerimine, et süsteem saaks tuvastada, millist faili täitmise ajal kasutada. Meil on VBA-s saadaval funktsioon FreeFile, mis täidab seda eesmärki.

Mis on VBA FreeFile'i funktsioon?

VBA FreeFile on funktsioon, mis on liigitatud VBA funktsiooni alla ja mis võimaldab süsteemil reserveerida järgmise faili jaoks numbri, mis tuleb avada VBA faili sisendväljundi all, sujuva kodeerimise võimaldamiseks ja tarbetud vigade vähendamiseks teie koodis. Kui avate faili VBA-faili IO (sisend / väljund) kaudu, muutub absoluutselt kohustuslikuks sellele failile kordumatu numbri määramine, kuna teil võib olla mitu faili selles asukohas, mida kavatsete oma lugemiseks, kirjutamiseks ja eesmärgi avamiseks kasutada kood. Kuidas süsteem teab, millist faili soovite avada? Funktsioon VBA FreeFile tuvastab kordumatu numbri, mille failile määrame, ja teeb selle teile VBA-s avamiseks, lugemiseks või kirjutamiseks kättesaadavaks.

Funktsiooni FreeFile süntaks on järgmine:

See funktsioon võtab ainult ühe argumendi RangeNumber, mille standardväärtused on null (0) ja üks (1). Kui määrate nulli, omistatakse failinumber iga avatud faili jaoks järk-järgult numbrite vahemikus 1 kuni 255. Kui määrate ühe, omistatakse iga avatud faili jaoks failinumber vahemikus 256 kuni 511. Kui vahemiku numbrit pole täpsustatud, loetakse vaikimisi nulli.

Kuidas kasutada funktsiooni FreeFile Excel VBA-s?

Allpool on toodud erinevad näited funktsiooni FreeFile kasutamiseks Excel VBA-s.

Selle VBA FreeFile Exceli malli saate alla laadida siit - VBA FreeFile Exceli mall

VBA FreeFile - näide nr 1

FreeFile'i funktsiooni kasutamiseks Excel VBA-s toimige järgmiselt.

1. samm: avage uus Visual Basic Editor (VBE), klõpsates oma Exceli faili vahekaardi Arendaja all nuppu Visual Basic või klõpsates samal ajal nuppu Alt + F11 .

2. samm: sisestage uus moodul VBE-sse. Klõpsake nuppu Lisa . Valige jaotises Lisamine saadaolevate valikute loendist Moodul .

3. samm: määratlege uus alaprotseduur, mis mahutab teie makro.

Kood:

 Alamnäide_1 () lõpp alam 

4. samm: määrake kaks uut muutujat, fail_1 ja fail_2 täisarvuna. Need kaks muutujat hoiavad numbreid, mille omistame igale failile, mille avame makro kaudu.

Kood:

 Alamnäide_1 () Tühi fail_1 Nagu täisarv Tühim fail_2 Nagu täisarv Lõpp Alam 

5. samm. Kasutage määramisoperaatorit VBA FreeFile'i abil faili_1 muutujale failile 1 täisarv määramiseks.

Kood:

 Alamnäide_1 () Tühi fail_1 Nagu täisarv Dim fail_2 Nagu täisarv fail_1 = FreeFile End Sub 

6. samm. Nüüd kasutage käsku Ava, mida saab kasutada faili avamiseks VBA-s.

Kood:

 Alamnäide_1 () Tühi fail_1 Nagu täisarv Tühim fail_2 Nagu täisarvfail_1 = FreeFile Ava "D: \ Exceli sisukirjutamine \ Tekstifail_1.txt" Väljundina failina_1 Lõpp-alam 

Siin oleme täpsustanud faili asukoha tee. For-avaldus annab teile valikuid, näiteks kuidas faili avada (nt väljundina) ja As-avaldus täpsustab faili numbri, mille oleme määranud FreeFile-i väljavõtte abil.

7. samm: järgige toiminguid 5 ja 6, et määrata muutujale fail_2 teisele failile uus number ja avage see.

Kood:

 Alamnäide_1 () Dim fail_1 Nagu täisarv Dim fail_2 Nagu täisarv fail_1 = FreeFile Ava "D: \ Exceli sisu kirjutamine \ TextFile_1.txt" Väljundina failina fail fail_2 = FreeFile Ava "D: \ Exceli sisu kirjutamine \ TextFile_2.txt" väljundi jaoks Nagu fail_2 Lõpp-alam 

8. samm: nüüd sooviksime näha numbreid, mis on mõlemale tekstifailile tegelikult omistatud. F8-klahvi abil saate iga rida ükshaaval joosta. Kuid väljund pole teile nähtav. Ei Exceli failis ega ka kohe aknas. Lisage järgmine MsgBoxi avaldus, kus kuvatakse teadeteboks koos iga faili numbritega.

Kood:

 Alamnäide_1 () Dim fail_1 Nagu täisarv Dim fail_2 Nagu täisarv fail_1 = FreeFile Ava "D: \ Exceli sisu kirjutamine \ TextFile_1.txt" Väljundina failina fail fail_2 = FreeFile Ava "D: \ Exceli sisu kirjutamine \ TextFile_2.txt" väljundi jaoks Nagu file_2 MsgBox "Faili_1 väärtus on:" & file_1 & Chr (13) & "Faili_2 väärtus on:" & file_2 End Sub 

Sellel koodireal sisaldab sõnumikasti esimene rida teksti „faili väärtus_1 on:“ ja funktsiooni FreeFile abil määratud arvväärtus. Chr (13) võimaldab kuvada järgmise rea. Sõnumikasti järgmine rida on „Faili_2 väärtus on:” ja teisele failile antud number.

9. samm: käivitage see kood, vajutades nuppu Käivita või vajutades klahvi F5.

Nii võimaldab FreeFile'i funktsioon määrata numbri failile, mida soovite VBA kaudu avada, lugeda, sulgeda.

VBA FreeFile - näide nr 2

Kui suleme faili, mille avame iga kord, siis on uue avatava faili järjekorranumber alati 1, kui see avatakse. Selle nägemiseks järgige allolevaid samme.

1. samm: määratlege uus alaprotseduur, mis mahutab teie makro.

Kood:

 Alamnäide_2 () lõpp alam 

2. samm: määratlege uued muutujad fail_1 ja fail_2 täisarvuna äsja määratletud alamprotseduuris.

Kood:

 Alamnäide_2 () Tühi fail_1 Nagu täisarv Tühim fail_2 Nagu täisarv Lõpp Alam 

3. samm. Nüüd määrake FreeFile'i abil antud failile number ja avage avaldus faili avamiseks selle asukoha kaudu.

Kood:

 Alamnäide_2 () Tühi fail_1 Nagu täisarv Mitu faili_2 Nagu täisarvfail_1 = FreeFile Ava "D: \ Exceli sisukirjutamine \ Tekstifail_1.txt" Väljundina failina_1 Lõpp-alam 

4. samm: kasutage MsgBox-avaldust, et esimeste failide arvule sõnumikasti lisada.

Kood:

 Alamnäide_2 () Tühi fail_1 Nagu täisarv Tühim fail_2 Nagu täisarvfail_1 = FreeFile Ava "D: \ Exceli sisukirjutamine \ TextFile_1.txt" Väljundina failina_1 MsgBox "Faili_1 väärtus on:" & file_1 Lõpeta alamhulk 

5. samm . VBA kaudu avatud faili sulgemiseks kasutage käsku Sule .

Kood:

 Alamnäide_2 () Dim file_1 Nagu Integer Dim file_2 With Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Output as file_1 MsgBox "File_1 väärtus:" & file_1 close file_1 End Sub 

6. samm. Järgige sama toimingut nagu 5. etapis 6, 7. etapis, kuid teise faili jaoks. See hõlmab muutujale faili_2 väärtuse omistamist funktsiooni FreeFile abil ja selle avamist rakenduse Ava avaldus abil, MsgBoxi abil teise faili numbri kuvamiseks ja teise faili lõplikuks sulgemiseks.

Kood:

 Alamnäide_2 () Dim file_1 Nagu Integer Dim file_2 as Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Output as file_1 MsgBox "File_1 väärtus:" & file_1 close file_1 file_2 = FreeFile Open "D : \ Exceli sisukirjutamine \ TextFile_2.txt "For Output As file_2 MsgBox" File_2 väärtus on: "& file_2 close file_2 End Sub 

7. samm: käivitage see kood, vajutades nuppu Käivita või F5.

Esimene sõnumikast esindab faili_1 väärtust, mis näib olevat 1. Teine sõnumikast esindab faili_2 väärtust, mis näib samuti olevat 1. See muudatus on olemas, kuna oleme kasutanud sulgemisavaldust failide ükshaaval sulgemiseks. Selle tulemusel kustub vana fail ja selle number iga kord süsteemimälust uue faili käivitamisel ja järgmine fail loetakse värskeks failiks numbritega 1.

Asjad, mida meeles pidada

  • FreeFile tagastab unikaalse täisarvu igale failile, mille VBA faili IO kaudu avame, loeme ja sulgeme.
  • FreeFile'il on argumendi RangeNumber jaoks kaks väärtust (mis on valikuline). Null määrab numbri vahemikuks 1–255 ja ühega numbrid 256–511.

Soovitatavad artiklid

See on VBA FreeFile'i juhend. Siin arutleme selle üle, kuidas FreeFile'i funktsioon võimaldab teil määrata numbri failile, mida soovite avada, lugeda, sulgeda läbi Excel VBA, koos praktiliste näidete ja allalaaditava Exceli malliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA kontrollfail on olemas Exceli mall
  2. VBA alamleht on vahemikust väljas (näited)
  3. Funktsioon GetObject Excel VBA-s
  4. Kuidas kasutada numbrivormingut VBA-s?
  5. VBA keskkond

Kategooria: