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ó kifejezettSub 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.