„Excel“ / „VBA“ - gauti informaciją iš glaudžios darbo knygos

[Excel-VBA] Skaitykite uždaroje darbo knygoje

Yra keli VBA metodai, skirti skaityti duomenis iš „Excel“ darbaknygės, neatidarant vėlesnio. Dauguma šių metodų yra žinomi dėl jų sudėtingumo, tačiau yra mažai triukų, kad galėtumėte tai pasiekti, nenaudojant OLE DB ryšio (tik skaitymo režimu).

Įvadas

Mes stengsimės gauti informaciją į „Recap“ darbo knygą. Ši informacija yra toliau pateiktame langelyje "A1: F10""Sheet1""šaltinio" darbaknygės, esančios "C: Pijaku Ne_fait_rien_de_ses_journées CCM" kataloge.

  • Pirmiausia atidarykite darbaknygę ir įrašykite „Pijaku“ lape 1, iš ląstelės A1 į ląstelę F10 ir išsaugokite jį kaip „source.xls“ į „C: Pijaku Ne_fait_rien_de_ses_journées CCM“.
  • Uždarykime šią darbo knygą.
  • Atidarykite antrą darbo knygą ir išsaugokite ją kaip „ Recap.xls “ (darbalaukyje).

„Excel“ metodas:

„Recap.xls“ darbo knygoje:

Įrašykite apibrėžtą pavadinimą.

  • Meniu: įterpti
  • Pasirinkimas: Vardas
  • Spustelėkite: Nustatyti
  • Vardai darbaknygėje => tipas: diapazonas
  • Nuoroda į => Enter = 'C: Pijaku Ne_fait_rien_de_ses_journées CCM [source.xls] Feuil1'! $ A $ 1: $ F $ 10
  • Spustelėkite Pridėti.
  • Darbinėje knygoje įveskite formulę A1: = diapazonas
  • ir patvirtinti.
  • Ištempkite šią formulę nuo A1 iki F10 ...

VBA kodas

 Sub importuotojasDonneesSansOuvrir ()

Dim Chemin kaip eilutė, Fichier kaip eilutė

Chemin = "C: Pijaku Ne_fait_rien_de_ses_journées CCM"

Fichier = "source.xls"

ThisWorkbook.Names.Add "plage", _

RefersTo: = "=" "& Chemin &" ["& Fichier &"] Feuil1 '! $ A $ 1: $ F $ 10 "

Su lapais („Feuil2“)

[A1: F10] = "= plage"

. [A1: F10]

Lapai („Feuil1“). Diapazonas („A1“) PasteSpecial xlPasteValues

[A1: F10]

Baigti su

Pabaiga

Prisimink tai

Visų pirma įsitikinkite, kad kelias į katalogą, rašyba yra teisinga. Taip pat patikrinkite, ar "" yra tarp katalogo kelio ir darbaknygos pavadinimo.

Naudojimo pavyzdys

Šis kodas sukasi per visas katalogo darbo knygas ir ištraukia ląstelės A1 turinį (lapas1), šiuo atveju, pavyzdžiui, datą.

 Galimybė aiški

Sub importuotojo duomenys ()

Dim objShell kaip objektas, objFolder As Object

„Dim Chemin“ kaip stygas, „Fichier“ kaip eilutė

Nustatyti objShell = CreateObject („Shell.Application“)

Nustatykite objFolder = objShell.BrowseForFolder (& H0 & "Choisir un répertoire", & H1 &)

Jei objekto aplankas nėra, tada

MsgBox "Abandon opérateur", vbCritical, "Annulation"

Kitas

Stulpeliai (1) .NumberFormat = "m / d / yyyy"

Chemin = objFolder.ParentFolder.ParseName (objFolder.Title) .Path & "\ t

[B1] = Chemin

fichier = Dir (Chemin & "* .xls")

Atlikite Len (fichier)> 0

Jei fichier ThisWorkbook.Name Tada

ŠisWorkbook.Names.Add "Plage", _

RefersTo: = "= '" & Chemin & "[" & fichier & "] Feuil1'! $ A $ 1"

Su lapais („Feuil2“)

. [A1] = "= Plage"

. [A1]

Lakštai („Feuil1“). Diapazonas („A“ ir eilutės.Kaina) .Be (xlUp) .Offset (1, 0) .PasteSpecialus xlPasteValues

Lakštai („Feuil1“). Diapazonas („A“ ir eilutės.Suma) .Pasirinkta (xlUp) .Įrašo (0, 1) = fichier

Baigti su

Baigti Jei

fichier = Dir ()

Loop

Baigti Jei

Pabaiga

Atsisiuntimai

Galite atsisiųsti:

  • šaltinio darbaknygė
  • pakartokite darbo knygą
  • Taip pat galima atsisiųsti „Zip“ failą, rodantį kilpą.
Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai