Board logo

標題: [發問] 從TXT檔尋找特定的數位,然後轉寫到Execl [打印本頁]

作者: nelson9165    時間: 2019-7-3 00:59     標題: 從TXT檔尋找特定的數位,然後轉寫到Execl

從TXT檔尋找特定的數位,例如由左面開始數起在 33digit - 37 digit, 尋找30001, 當乎合條件就轉寫到Execl.

TXT檔是Oracle AP register 格式, 想從Expense nature 抽取需要的 data.

thanks:)
[attach]30984[/attach]

[attach]30985[/attach]
作者: 准提部林    時間: 2019-7-5 10:22

想得到什麼樣效果?
至少做個excel樣本~~
作者: nelson9165    時間: 2019-7-8 23:47

回復 2# 准提部林

將有30001 A/C 的 Row 滙入Excel後, 進行資料分割.
因為資料太多,所以不想整個TXT檔滙入後才篩選30001 A/C.


  Item    1 01-000-0-000-00-000-30001-000    Chilled Fresh Meiji 4.3 Deluxe Milk 1Lit               810.00    19-JUN-19     Proc
  Item    1 01-000-0-000-00-000-30001-000    Chilled Slim Milk Meiji 946ml                          162.00    19-JUN-19     Proc

效果如下               
               
Date                Description                                                          Amt
19-Jun-19        Chilled Fresh Meiji 4.3 Deluxe Milk 1Lit          810.00
19-Jun-19        Chilled Slim Milk Meiji 946ml                          162.00
作者: 准提部林    時間: 2019-7-10 10:39

Sub TEST()
Dim xFile$, Arr(1 To 6000, 1 To 3), N&, L
ActiveSheet.UsedRange.Offset(1, 0).EntireRow.Delete
xFile = ThisWorkbook.Path & "\Oracle.txt"
If Dir(xFile) = "" Then MsgBox "文字檔不存在! ": Exit Sub
Open xFile For Input As #1
While Not EOF(1)
      Line Input #1, L
      If Mid(L, 32, 7) = "-30001-" Then
         N = N + 1
         Arr(N, 1) = Trim(Left(Right(L, 18), 9))
         Arr(N, 2) = Trim(Mid(L, 46, 40))
         Arr(N, 3) = Trim(Right(Trim(Left(L, Len(L) - 20)), 15))
      End If
Wend
Close #1
[A2].Resize(N, 3) = Arr
End Sub

[attach]31008[/attach]

文字檔與本檔須同一資料夾中


=====================




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)