Turinys
Žinoma, mums gali prireikti atidaryti failą iš pagrindinio "Excel" failo, naudojant VBA, esančio kitame kataloge. Tačiau tuo pat metu turime įvairių tipų kriterijų ir apie tai, kaip norime atidaryti darbaknygę. Jei jums įdomu sužinoti, kaip galite atidaryti darbaknygę su kintamuoju pavadinimu, šis straipsnis gali jums praversti. Šiame straipsnyje aptariame, kaip galite atidaryti darbaknygę su kintamuoju pavadinimunaudojant VBA programoje "Excel", su išsamiais paaiškinimais.
Atsisiųsti praktikos sąsiuvinį
Atsisiųskite šį pratybų sąsiuvinį žemiau.
Atidaryti sąsiuvinį su kintamuoju vardu naudojant VBA.xlsm
Pavyzdys.xlsx
4 paprasti būdai atidaryti darbo knygą su kintamojo vardu naudojant VBA programoje "Excel
Demonstravimui naudosime toliau pateiktą duomenų rinkinį. Turime kelių produktų informaciją su jų Id. tai yra pavyzdinis failas, kurį atidarysime naudodami VBA kodą.
1. Naudojant Workbook.Open savybę
Naudojant Workbook.Open savybė, galime atidaryti failus nurodydami katalogą arba nenurodydami vietos. Taip pat galime atidarytą failą paversti tik skaitymui skirtu failu.
1.1 Atidaryti sąsiuvinį, nurodant failo kelią
Kitame metode naudosime Workbook.Open savybė atidaryti failą tiesiogiai iš minėto failo vietos katalogo. Nesvarbu, kur yra failas, galime lengvai jį atidaryti.
Žingsniai
- Dokumentų aplanke turime išsaugotą failą, kurį reikia atidaryti.
- Failo pavadinimą naudosime kaip kintamąjį, o tada failą atidarysime naudodami nedidelį VBA makrokomandą.
- Toliau savybių lange rodomas tikslus failo katalogas.
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba galite paspausti Alt+F11' atidarant "Visual Basic" redaktorius .
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
- Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path) End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Paspaudę Peržiūrėti makrokomandas, pasirinkite ką tik sukurtą makrokomandą. Pavadinimas čia yra Open_with_File_Path . Tada spustelėkite Paleisti .
- Po to Pavyzdys bus atidarytas failas.
🔎 Kodo suskirstymas
Dalis Open_with_File_Path()
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Open_with_File_Path .
Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample"
⮚ Tada failo vietą įrašome į File_Path kintamasis
Dim wrkbk kaip darbo knyga
⮚ Tada deklaruojame savo kintamąjį wrkbk , kurio tipas yra darbo knyga.
Set wrkbk = Workbooks.Open(Filename:=File_path)
⮚ Tada atidarome failą, pavadintą File_Path katalogo kintamąjį ir nustatykite failą kaip wrkbk kintamas.
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Skaityti daugiau: Kaip atidaryti darbaknygę iš kelio naudojant "Excel VBA" (4 pavyzdžiai)
1.2 Atidaryti sąsiuvinį nenurodant failo kelio
Kitame metode atidarysime failą iš pagrindinio aplanko, kuriame išsaugotas pagrindinis failas. Failą galima atidaryti nenurodant jokios vietos kode. Šis failas tiesiog turi būti tame pačiame aplanke kaip ir pagrindinis aplankas.
Žingsniai
- Tame pačiame kataloge, kuriame dabar yra išsaugotas pagrindinis "Excel" failas, yra išsaugotas kitas failas.
- Failo pavadinimas yra 1.
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba Taip pat galite paspausti Alt+F11 ', kad atidarytumėte "Visual Basic" redaktorius .
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
- Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Spustelėję View Macros (Peržiūrėti makrokomandas), pasirinkite ką tik sukurtas makrokomandas. Pavadinimas čia yra Open_without_File_Path . Tada spustelėkite Paleisti.
- Paspaudus Paleisti , pastebėsite, kad dabar atidarytas failas pavadinimu 1.
- Štai kaip "Excel" programoje atidarome sąsiuvinį su kintamuoju pavadinimu naudodami VBA.
🔎 Kodo suskirstymas
Dalis Open_without_File_Path()
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Dalis Open_without_File_Path()
Dim wrkbk kaip darbo knyga
⮚ Skelbiame wrkbk kaip sąsiuvinio tipo kintamąjį
Set wrkbk = Workbooks.Open(Filename:="1.xlsx")
⮚ Atidarome failą iš pagrindinio katalogo pavadinimu 1.xlsx .
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
1.3 Atidaryti sąsiuvinį kaip tik skaitomą
Šis metodas yra gana panašus į pirmąjį metodą, tačiau šiuo atveju failą atidarysime tik skaitymo režimu, t. y. negalėsime keisti jokių "Excel" failo duomenų ar reikšmių.
Žingsniai
- Failas, kurį norime atidaryti, yra išsaugotas dokumentų aplanke.
- Šį failą norime atidaryti tik skaitymui.
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba galite paspausti Alt+F11 ', kad atidarytumėte Visual Basic redaktorių.
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
- Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_with_File_Read_Only() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Spustelėję View Macros (Peržiūrėti makrokomandas), pasirinkite ką tik sukurtas makrokomandas. Pavadinimas čia yra Open_with_File_Read_Only . Tada spustelėkite Paleisti .
- Paspaudę Paleisti , pamatysime, kad dabar failas atidarytas tik skaitymui, kaip parodyta pavadinimo juostoje.
🔎 Kodo suskirstymas
Dalis Open_with_File_Read_Only()
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Open_with_File_Read_Only()
Dim wrkbk kaip darbo knyga
⮚ Skelbiame wrkbk kaip kintamąjį sąsiuvinio tipą
Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True)
⮚ Tada failas bus atidarytas iš nurodyto katalogo, o failas bus nustatytas tik skaityti pagal paskutinį argumentą.
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Skaityti daugiau: Kaip atidaryti darbaknygę kaip tik skaitomą naudojant "Excel VBA
2. Pranešimų langelio naudojimas
Beveik panašiai kaip ir ankstesniame metode, galime atidaryti failus naudodami VBA kodą "Excel" programoje, tačiau šiuo atveju čia įterpsime nedidelį pranešimo langą.
Žingsniai
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba Taip pat galite paspausti Alt+F11' atidarant "Visual Basic" redaktorius .
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
- Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" If Dir(path) "" Then Workbooks.Open (path) MsgBox "Failas atidarytas sėkmingai" Else MsgBox "Failo atidarymas nepavyko" End If End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Paspaudę Peržiūrėti makrokomandas, pasirinkite ką tik sukurtą makrokomandą. Pavadinimas čia yra Open_File_with_Messege_Box . Tada spustelėkite Paleisti .
- Tada pasirodė įspėjimo langelis, kuriame rodoma, kad Failas atidarytas sėkmingai .
- Tada spustelėkite GERAI .
- Tada pamatysime, kad failas atidarytas.
- Tada bandome šiek tiek pakeisti kodą.
- Pakeičiame failo pavadinimą į Pavyzdys10 ir iš tikrųjų nėra jokio failo, pavadinto Pavyzdys10 dokumentų aplanke.
- Tada mes Paleisti kodą dar kartą, ir pasirodo pranešimo langelis, kuriame rašoma. Nepavyko atidaryti failo .
- Spustelėkite GERAI po to.
🔎 Kodo suskirstymas
Dalis Open_File_with_Messege_Box()
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Open_with_File_Read_Only()
Dim path As String:
⮚ Skelbiame wrkbk kaip sąsiuvinio tipo kintamąjį
Jei Dir(kelias) "" Tada Workbooks.Open (kelias)
MsgBox "Failas atidarytas sėkmingai" Kitaip
⮚ Šioje eilutėje bus patikrinta, ar failas, pavadintas Sample, yra kataloge, ar ne, jei failas yra, jis bus atidarytas ir tuo pačiu metu bus parodytas pranešimas.
MsgBox "Failo atidarymas nepavyko"
⮚ Jei nėra failo pavadinimu Pavyzdys kataloge, šis pranešimas bus pristatytas.
End If
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Skaityti daugiau: Kaip atidaryti sąsiuvinį ir paleisti makrokomandą naudojant VBA (4 pavyzdžiai)
3. Dialogo langelio naudojimas failui atidaryti
Failų vietos katalogo išskyrimas ir jų importavimas kiekvieną kartą į VBA kodą yra gana nepatogus. Norėdami išspręsti šią problemą, parodysime, kaip galite naudoti dialogo langą, kad pasirinktumėte failą iš bet kurio katalogo.
Žingsniai
- Dabar atidarysime failą naudodami failų tyrėjo dialogo langą.
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba Taip pat galite paspausti Alt+F11' atidarant "Visual Basic" redaktorius .
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
- Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_File_with_Dialog_Box() Dim Dbox As FileDialog Dim File_Path As String Dim wrkbk As Workbook Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Choose and Open " & FileType Dbox.Filters.Clear Dbox.Show If Dbox.SelectedItems.Count = 1 Then File_Path = Dbox.SelectedItems(1) End If Set wrkbk = Workbooks.Open(Filename:=File_Path) End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Paspaudę Peržiūrėti makrokomandas, pasirinkite ką tik sukurtą makrokomandą. Pavadinimas yra Open_File_with_Dialog_Box . Tada spustelėkite Paleisti .
- Tada atsidaro naujas langas. Failų tyrėjo dialogo lange ir pasirinkite Pavyzdys ir spustelėkite GERAI .
- Tada failas pavadinimu Pavyzdys atidarytas.
- Štai kaip "Excel" programoje atidarome sąsiuvinį su kintamuoju pavadinimu naudodami VBA.
🔎 Kodo suskirstymas
Dalis Atidaryti failą su dialogo langeliu()
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Dalis Atidaryti failą su dialogo langeliu()
Dim Dbox As FileDialog
⮚ Skelbiame Dbox kaip kintamąjį FileDialog tipas
Dim File_Path kaip eilutė
⮚ Skelbiame File_Path kaip kintamąjį File_Path Kaip Stygos tipas
Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Choose and Open " & amp; FileType
⮚ Nuo pirmosios eilutės bus dialogo langas. Kitoje eilutėje nurodomas dialogo lango pavadinimas ir failo tipas.
⮚ Dbox.Title bus nustatytas dialogo lango pavadinimas. ir Failo tipas
nustatyti failo tipą.
Dbox.Filters.Clear
⮚ Dbox.Filters.Clear ištrins bet kokį ankstesnį diaog lange taikytą filtrą.
Dbox.Show
⮚ Dbox.Show dialogo langas bus rodomas faile.
⮚ Šioje eilutėje nustatoma, ar naudotojas pasirinko daugiau nei vieną failą, ar ne. Jei naudotojas pasirinktų daugiau nei vieną failą, visa procedūra būtų sustabdyta.
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Skaityti daugiau: Kaip atidaryti aplanką ir pasirinkti failą naudojant "Excel VBA" (4 pavyzdžiai)
4. Naudojant Workbook.Add Property
Priešingai nei ankstesniais metodais, sukursime naują "Excel" failą iš anksto nustatytame kataloge ir jį atidarysime naudodami Darbo knyga. Pridėti nuosavybė.
Žingsniai
- Pirmiausia eikite į Kūrėjas skirtuką ir spustelėkite "Visual Basic Jei to neturite, turite įjungti skirtuką Kūrėjas . Arba Taip pat galite paspausti Alt+F11' atidarant "Visual Basic" redaktorius .
- Tuomet atsiras naujas dialogo langas, kuriame spustelėkite Įdėkite > Modulis .
Toliau, į Modulis redaktoriaus lange įveskite šį kodą:
Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub
- Tada uždarykite Modulis langas.
- Po to eikite į Peržiūrėti skirtukas> Makrokomandos .
- Tada spustelėkite Peržiūrėti makrokomandas .
- Paspaudę Peržiūrėti makrokomandas, pasirinkite ką tik sukurtą makrokomandą. Pavadinimas čia yra Open_File_with_Add_Property . Tada spustelėkite Paleisti .
- Paspaudę Bėgti, pastebėsite, kad sukurtas ir atidarytas naujas failas.
🔎 Kodo suskirstymas
⮚ Pirma, pateikiame paprocedūros pavadinimą, kuris yra Dalis Atidaryti_Failą_su_pridedama_savybe()
⮚ Tada deklaruojame File_Path kintamąjį kaip Stygos tipas.
Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx"
⮚ Ir nustatykite File_Path kintamąjį į failo vietą.
Dim wb kaip darbaknygė
⮚ Skelbiame wb kaip kintamąjį Darbo knyga tipas.
Set wb = Workbooks.Add(File_Path)
⮚ Tuomet darbo knyga pridedama iš katalogo, saugomo File_Path vietą naudojant Workbook.Add nuosavybė.
Pabaiga Sub
⮚ Galiausiai užbaigiame šio kodo paprocedūrą.
Skaityti daugiau: [Pataisyta!] Nepavyko atidaryti objektų sąsiuvinių metodo (4 sprendimai)
Išvada
Apibendrinant galima teigti, kad į klausimą, kaip galime atverti sąsiuvinius su kintamaisiais pavadinimais naudodami VBA, čia atsakoma 4 skirtingais pavyzdžiais. VBA makrokomandos metodas reikalauja išankstinio Su VBA susijęs žinias suprasti iš pagrindų.
Šiam uždaviniui spręsti galima atsisiųsti makrokomandų sąsiuvinį, kuriame galėsite praktiškai išbandyti šiuos metodus.
Drąsiai užduokite bet kokius klausimus ar atsiliepimus per komentarų skyrių. Bet koks pasiūlymas dėl geresnio Exceldemy bendruomenė bus labai vertinama.