Šī apmācība parādīs, kā lasīt saturu no teksta failiem un ielīmēt to darblapās, izmantojot VBA.
Lasiet teksta faila saturu darblapā
Vienkāršākais teksta faila satura lasīšanas veids ir kopēt to darblapas šūnā.
123456789101112 | Sub FSOPasteTextFileContent ()Dim FSO kā jauns FileSystemObjectIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatiet FileToRead = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForReading) "pievienojiet šeit teksta faila ceļuTextString = FileToRead.ReadAllFileToRead.CloseThisWorkbook.Sheets (1). Range ("A1"). Value = TextString 'varat norādīt darblapu un šūnu, kur ielīmēt teksta faila saturuBeigu apakš |
Iepriekš minētais kods izmanto FileSystemObject. Lai to izmantotu, jums būs jāiestata atsauce uz VB skripta izpildes laika bibliotēku. Plašāku informāciju skatiet šeit.
Neizmantojot FileSystemObject, jūs varat ielīmēt teksta faila saturu ar zemāk redzamo kodu. Ja jūsu teksta failā ir rindu atdalītājs, tas tiks ielīmēts pa rindām.
123456789101112 | Sub PasteTextFileContent ()Dim wbExcel kā darbgrāmata, wbText kā darbgrāmataDim wsExcel kā darblapaSet wbExcel = ThisWorkbook "šeit norādiet, kurā Excel failā teksta faila saturs tiks ielīmētsIestatiet wsExcel = wbExcel.Sheets (1) 'šeit norādiet, kuru darblapu izmantotIestatiet wbText = Workbooks.Open ("C: \ Test \ TestFile.txt") 'pievienojiet šeit sava teksta faila ceļuwbText.Sheets (1). Šūnas. Kopēt wsExcel.CellswbText.Close SaveChanges: = NepareiziBeigu apakš |
Izlasiet teksta faila saturu pa rindām, kolonnas pēc kolonnas
Jūsu teksta failā var būt vairākas rindas un vairāki elementi, kas uzskaitīti rindās, atdalot tos ar komatu, semikolu, cilni, atstarpi utt.… Lai pareizi izlasītu un ielīmētu teksta faila saturu, jums var būt nepieciešams šis kods:
1234567891011121314151617181920212223242526 | Sub PasteTextFileContentWithSeparators ()Dim StrLine kā virkneDim FSO kā jauns FileSystemObjectAptumšot PSO kā objektuDim StrLineElements kā variantsDim indekss tik garšDim un tik ilgiAptumšot norobežotāju kā virkniIestatīt FSO = CreateObject ("Scripting.FileSystemObject")Iestatīt TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Atdalītājs = "," 'norobežotājs, kas tiek izmantots jūsu teksta failāIndekss = 1Darīt, kamēr TSO.AtEndOfStream = NepareiziStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Attiecībā uz i = LBound (StrLineElements) līdz UBound (StrLineElements)Šūnas (indekss, i + 1). Vērtība = StrLineElements (i) ”šis kods sāks ielīmēt teksta faila saturu no aktīvās darblapas A1 (šūna (1,1)) šūnasTālāk iIndekss = indekss + 1CilpaPSO. AizvērtBeigu apakš |
Atdalītājs, ko izmanto jūsu teksta failā, var būt komats (“,”), komats ar atstarpi (“,“), semikols (“;”), semikols ar atstarpi (“;”), atstarpe (““), cilne (mainiet pēc tam Atdalītājs = vbTab) vai retos gadījumos jebkuru citu rakstzīmi.
Lasiet teksta failus masīvos
Ja jums ir jālasa sava teksta faila saturs masīvā un ielīmējiet darblapā rindu pēc rindas, kolonna pēc kolonnas, jums būs nepieciešams šāds kods:
12345678910111213141516171819202122232425262728293031323334 | Sub ReadDelimitedTextFileIntoArray ()Aptumšot norobežotāju kā virkniDim teksta fails kā vesels skaitlisAptumšojiet FilePath kā virkniAptumšojiet FileContent kā virkniDim LineArray () kā virkneDim DataArray () kā virkneDim TempArray () kā virkneDim rw cik ilgi, kol tik ilgiAtdalītājs = vbTab 'norobežotājs, kas tiek izmantots jūsu teksta failāFilePath = "C: \ Test \ TestFileTab.txt"rw = 1Teksta fails = FreeFileAtveriet FilePath ievadīšanai kā TextFileFileContent = Ievadi (LOF (TextFile), TextFile)Aizveriet TextFileLineArray () = Split (FileContent, vbNewLine) 'mainīt vbNewLine uz vbCrLf vai vbLf atkarībā no teksta failā izmantotā rindu atdalītājaX = LBound (LineArray) līdz UBound (LineArray)Ja Len (Apgriezt (LineArray (x))) 0 TadTempArray = Split (LineArray (x), Delimiter)col = UBound (TempArray)ReDim Preserve DataArray (kols, rw)Ja y = LBound (TempArray) līdz UBound (TempArray)DataArray (y, rw) = TempArray (y)Šūnas (x + 1, y + 1). Vērtība = DataArray (y, rw) 'šis kods sāks ielīmēt teksta faila saturu no aktīvās darblapas A1 (šūna (1,1)) šūnasNākamais gBeigas Jarw = rw + 1Nākamais xBeigu apakš |
Rindu atdalītāji jūsu teksta failā var būt ratiņu atgriešanās un rindas plūsmas kombinācija (Chr (13)+Chr (10)) vai linefeed (Chr (10)). Attiecīgi izmantojiet vbCrLf vai vbLf. Ja neesat pārliecināts, izmantojiet vbNewLine, lai norādītu līniju atdalītāju.