使用VBA 讀TXT中特定字串

我的TXT內容為:

PM 07:06 START INFUSION

PM 07:06 KEYPAD LOCKED

PM 07:05 TOTAL AMOUNT 100.0 MG

PM 07:05 4 HOUR LIMIT 20.0 MG

PM 07:05 PCA LOCKOUT 10 MIN

PM 07:05 PCA DOSE 0.8 MG

PM 07:05 DELIVERY RATE 0.5 MG/HR

PM 07:05 DRUG CONCENTRATION 1.0 MG/ML

PM 07:05 PCA MODE CONTINUOUS+PCA

PM 07:05 HISTORY CLEARED

想要指定一個資料夾路徑,用excel讀取資料夾內多筆TXT檔,取字串內容為:

"DRUG CONCENTRATION 1.0 MG/ML"

總行數不見得10行,最上面還有摻雜其他資料

我有好幾千筆資料,希望有人可以幫忙我><

謝謝!!

已更新項目:

非常謝謝jan ><

可以再進一步問一下嗎?

我想要能讀中文字串,發現有些檔案內容竟然是中文版的QQ

ex: "11:34 設置濃度 1.00 mg/mL"

可以同時判斷兩種字串嗎?

" DRUG CONCENTRATION 1.0 MG/ML"

"設置濃度 1.00 mg/mL"

拜託了,謝謝你!!

2 個已更新項目:

Dear jan

真的很謝謝你的幫忙!!

但還有一個問題要請教你

我發現有些檔案是中文版,請問可以讀中文字串嗎?

"PM 07:05 DRUG CONCENTRATION 1.0 MG/ML"

"11:34 設置濃度 1.00 mg/mL"

可以同時讀取以上兩種字串類型嗎?

這些都是實驗數據,拜託你了,真的很感謝你!!

2 個解答

評分
  • jan
    Lv 4
    9 年前
    最佳解答

    下載檔案後,將資料解壓縮到同一資料夾

    程式碼設定txt檔路徑一定與excel檔相同,按RUN 方塊

    http://www.funp.net/559174

    圖片參考:http://imgcld.yimg.com/8/n/AC07906123/o/1611120703...

    Dim lRow As Long

    Dim FSO As Object

    Sub ReadtxtFiles()

    Dim FL As Object

    Dim Fle As Object

    rpath = ThisWorkbook.Path & "\"

    Set FSO = CreateObject("Scripting.FileSystemObject")

    Set Fdr = FSO.GetFolder(rpath)

    Set Fle = Fdr.Files

    For Each FL In Fle

    If UCase(FL.Name) Like "*.TXT" Then ProcessFile FL

    Next

    Set FSO = Nothing

    lRow = 0

    End Sub

    Sub ProcessFile(FL)

    Dim Fot As Object

    Dim FRL As String

    Set FSO = CreateObject("Scripting.FileSystemObject")

    Set Fot = FSO.OpenTextFile(FL, 1, False)

    Do Until Fot.AtEndOfStream

    FRL = Fot.ReadLine

    If FRL Like "*DRUG CONCENTRATION 1.0 MG/ML*" Then

    lRow = lRow + 1

    Cells(lRow, "A") = FRL

    Cells(lRow, "B") = Dir(FL)

    End If

    Loop

    Fot.Close

    Set Fot = Nothing

    End Sub

    2011-12-07 22:59:30 補充:

    如果只有2個就加一句 or 就可以了

    If (FRL Like "*DRUG CONCENTRATION 1.0 MG/ML*") Or _

    (FRL Like "*11:34 設置濃度 1.00 mg/mL*") Then

  • 9 年前

    Open "path" For Input as #fn

    Do until eof(fn)

    Line Input fn, intstr

    ''analyse each lines here

    loop

    close fn

    2011-12-07 23:46:02 補充:

    If (FRL Like "*DRUG CONCENTRATION 1.0 MG/ML*") Or _

    (FRL Like "*設置濃度 1.00 mg/mL*") Then

還有問題?馬上發問,尋求解答。