Excel / VBA - Információk lekérése egy közeli munkafüzetből

[Excel-VBA] Olvassa el egy zárt munkafüzetben

A VBA-nál több módszer is létezik az Excel munkafüzet adatainak olvasására, a későbbiek megnyitása nélkül. Ezek közül a módszerek többsége komplexitása miatt ismert, de van egy kis trükk, hogy ezt megkerülhessük anélkül, hogy az OLE DB kapcsolatot használnánk (csak olvasható mód).

Bevezetés

Megpróbálunk visszanyerni az információkat a "Recap" munkafüzetünkbe. Az információ a "C: Pijaku Ne_fait_rien_de_ses_journées CCM" könyvtárban található "Forrás" munkafüzet "A1: F10" következő cellatartományában található.

  • Először nyissa meg a munkafüzetet, és írja be a "Pijaku" -t az 1. lapból az A1 cellából az F10 cellába, és mentse "forrásként. Xls" -ként a "C: Pijaku Ne_fait_rien_de_ses_journées CCM" mezőbe.
  • Zárjuk be ezt a munkafüzetet.
  • Nyisson meg egy második munkafüzetet, és mentse el a " Recap.xls " -ként (az asztalon).

Az Excel által használt módszer:

A Recap.xls munkafüzetben:

Adjon meg egy megadott nevet.

  • Menü: Beszúrás
  • Választás: Név
  • Kattintson a: Beállítás gombra
  • Nevek a munkafüzetben => típus: tartomány
  • => Enter = 'C: Pijaku Ne_fait_rien_de_ses_journées CCM [source.xls] Feuil1'! $ A $ 1: $ F $ 10
  • Kattintson a Hozzáadás gombra.
  • A munkafüzetben adja meg a képletet az A1: = tartományban
  • és érvényesítse.
  • Húzza meg ezt a képletet A1-től F10-ig ...

VBA kód

 Sub importőrDonneesSansOuvrir ()

Dim Chemin as karakterláncként, Fichier As String

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 "

Lapokkal ("Feuil2")

[A1: F10] = "= plage"

. [A1: F10] .Copy

Lapok ("Feuil1"). Tartomány ("A1") PasteSpecial xlPasteValues

. [A1: F10] .Clear

Vége

Vége vége

Vegye figyelembe, hogy

Mindenekelőtt győződjön meg róla, hogy a könyvtárhoz vezető út, a helyesírás helyes. Ellenőrizze azt is, hogy "" van-e a könyvtár és a munkafüzet neve között.

Példa a használatra

Ez a kód a könyvtár összes munkafüzetén keresztül hurok, és kivonja az A1 (tartalom1) cella tartalmát, ebben az esetben például egy dátumot.

 Opció kifejezett

Sub importőrDátumok ()

Objektumként objektumként objektív, objektumként objektum

Dim Chemin as karakterláncként

Objektum beállításaShash = CreateObject ("Shell.Application")

Az objFolder = objShell.BrowseForFolder (& H0 & "Choisir un répertoire", & H1 &) beállítása

Ha az objektum mappa semmi sem történik

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

Más

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

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

[B1] = Chemin

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

Csinálj Len (fichier)> 0 alatt

Ha fichier ThisWorkbook.Name Ezután

ThisWorkbook.Names.Add "Plage", _

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

Lapokkal ("Feuil2")

. [A1] = "= Plage"

. [A1] .Copy

Lapok ("Feuil1"). Tartomány ("A" és sorok. Szám) .End (xlUp) .Offset (1, 0) .PasteSpecial xlPasteValues

Lapok ("Feuil1"). Tartomány ("A" és sorok. Szám) .End (xlUp) .Offset (0, 1) = fichier

Vége

Vége Ha

fichier = Dir ()

Hurok

Vége Ha

Vége vége

Letöltések

Letöltheti a következőt:

  • forrás munkafüzet
  • újratárcsázza a munkafüzetet
  • A hurkot bemutató Zip fájl letöltéséhez is rendelkezésre áll.
Előző Cikk Következő Cikk

Top Tippek