Trekken bestandsnamen in een werkblad

Carol heeft een directory met ongeveer 1.000 bestanden met namen als YR1905-LIC12345-Smith, Harry-Brown, Mary. Ze zou graag al deze bestandsnamen (niet de bestanden zelf) in een werkblad de namen op het dashboard te brengen en te scheiden. Zo zou het bijvoorbeeld bestandsnaam daadwerkelijk innemen vier cellen in een enkele rij. Carol cijfers zal dit een macro te nemen om te bereiken, maar ze is niet zeker hoe u de bestandsnamen in die macro.

U kunt natuurlijk gebruik maken van een macro om dit te doen, maar je hoeft niet om een ​​macro te gebruiken. U kunt in plaats daarvan gebruik maken van een oude DOS-tijdperk truc om te krijgen wat je nodig hebt. Bij de opdrachtprompt (toegankelijk via Windows: Start | Alle programma's | Accessoires | Opdrachtprompt), navigeren totdat u in de map die de bestanden bevat. Voer vervolgens het volgende:

dir / b / ad> filelist.txt

Dit creëert een tekstbestand (filelist.txt), dat een lijst van alle bestanden in de huidige directory bevat. Nu, in Excel, kunt u de volgende stappen:

  1. Binnen Excel, klikt u op de Open op de werkbalk. Excel toont het dialoogvenster Openen.
  2. Met behulp van de Bestanden van Type keuzelijst aan de onderkant van het dialoogvenster aan te geven dat u wilt tekstbestanden te openen (* .prn; * .txt; * .csv).
  3. Navigeer naar en selecteer het filelist.txt bestand dat u hebt gemaakt bij de opdrachtprompt.
  4. Klik op Openen. Excel start de wizard Tekst importeren, het weergeven van de Stap 1 van 3 dialoogvenster. (Zie figuur 1.)

    Trekken bestandsnamen in een werkblad

    Figuur 1. De wizard Tekst importeren.

  5. Zorg ervoor dat het afgebakende keuze is geselecteerd en klik op Volgende. Excel toont de stap 2 van 3 dialoogvenster.
  6. Zorg ervoor dat je een streepje als uw scheidingsteken opgeven. (Je moet klikt u op Overige en voer vervolgens een streepje als scheidingsteken.)
  7. Klik op Voltooien. Uw bestand wordt geïmporteerd en gebroken op de streepjes, net zoals je wilde.

De bovenstaande stappen zijn vrij gemakkelijk te bereiken, vooral als je alleen nodig om het bestand te krijgen notering in Excel een keer in de zoveel tijd. Als u nodig hebt om het meer routinematig doen, dan moet je waarschijnlijk proberen een manier om het te doen met behulp van een macro. De volgende macro zal heel snel aan het werk:

Sub GetFileNames ()
Dim sPath als Koord
Dim sFile als Koord
Dim iRow As Integer
Dim iCol As Integer
Dim SplitFile als Variant

'Opgeven directory te gebruiken - moet eindigen op "\"
sPath = "C: \"

iRow = 0
sFile = Dir (sPath)
Doe Terwijl sFile <> ""
iRow = iRow + 1
SplitFile = Split (sFile, "-")
Voor iCol = 0 Om UBound (SplitFile)
Sheet1.Cells (iRow, iCol + 1) = SplitFile (iCol)
Volgende iCol
sFile = Dir 'Get volgende bestandsnaam
Lus
End Sub

Wanneer u de macro uitvoert, zorg ervoor dat er niets in het huidige werkblad. (Alles wat er wordt overschreven.) Ook moet u het pad dat is toegewezen aan de sPath variabele in de buurt van het begin van de macro te wijzigen.

Als je een foutmelding krijgt als je de macro uit te voeren, is de kans groot dat u Excel 97. De Split-functie (gebruikt om de bestandsnaam van elkaar op de streepjes te breken) werd niet naar VBA toegevoegd totdat Excel 2000. Als u gebruik maakt van Excel 97 , dan kunt u de volgende routine te gebruiken om na te bootsen wat de Split functie doet:

Split functie (Raw As String, Delim als Koord) als Variant
Dim Vary () As String
Dim Stemp als Koord
Dim J As Integer
Dim INDX As Integer

INDX = 0
Stemp = Raw
J = InStr (Stemp, Delim)
Terwijl J> 0
INDX = INDX + 1
ReDim Preserve Vary (1 Om INDX)
Vary (INDX) = Trim (Links (Stemp, J))
Stemp = Trim (Mid (Stemp, J, Len (Stemp)))
J = InStr (Stemp, Delim)
Zich begeven
INDX = INDX + 1
ReDim Preserve Vary (1 Om INDX)
Vary (INDX) = Trim (Stemp)
Split = Vary ()
End Function

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (11.143) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vinden hier: Pulling bestandsnamen in een werkblad.