ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦p±q TXT Àɮ׿ï¨ú­nªº¸ê®Æ¨ì EXCEL ¨Ó

[µo°Ý] ¦p±q TXT Àɮ׿ï¨ú­nªº¸ê®Æ¨ì EXCEL ¨Ó

¾Ç©f¤S¨Ó³Â·Ð¤j®a¤F

¥´¶} EXCEL Àɦ³¸Ô²Ó»¡©ú³á

½Ð«Ó­ô/¬ü¤kª©¥D «Ó­ô/¬ü¤k¾Çªø¸ò¾Ç©j

À°¦£¾Ç©f§¹¦¨



ÁÂÁ¤F

Close20130803.rar (8.34 KB)

«ô°U
¦³½Ð «Ó­ô/¬ü¤kª©¥D «Ó­ô/¬ü¤k¾Çªø¸ò¾Ç©j
¯àÀ°¦£¾Ç©f§¹¦¨ ? ÁÂÁÂ

TOP

¥»©«³Ì«á¥Ñ metrostar ©ó 2013-8-11 20:53 ½s¿è

Sub test()
    Dim fs$, ar, fn$, br(1 To 10000, 1 To 7), t
    Dim c, i&, j&, r&, ph$
    c = Array(0, 0, 1, 2, 3, 4, 5, 7)
        With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = "*.txt"
        .Show
        If .SelectedItems.Count > 0 Then
            fs = .SelectedItems(1)
        Else
            MsgBox "¨S¦³¿ï¨úÀÉ®× !!!"
            Exit Sub
        End If
    End With
    With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = " +(?!$)"
        While Len(fn) > 0
            Open ph & fn For Input As #1
            ar = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
            Reset
            For i = 4 To UBound(ar) - 1
                r = r + 1
                ar(i) = .Replace(ar(i), "|")
                t = Split(ar(i), "|")
                For j = 1 To UBound(c)
                    br(r, j) = t(c(j))
                Next
                br(r, 2) = Mid(fn, 6, 8)
            Next
            fn = Dir
        Wend
    End With
    With Sheet1
        .Range("2:" & Rows.Count).ClearContents
        .Range("a:a").NumberFormatLocal = "@"
        .[a2].Resize(r, UBound(br, 2)) = br
    End With
End Sub

³o¨Çµ{¦¡½X¬O¦ìEXCELHOME «Ó­ô¾ÇªøÀ°¦£ªº,¦ý¬O¾Ç©f³o¸Ì¤£¯à¨Ï¥Î
·|¥X²{³o¦æ¿ù»~   .[a2].Resize(r, UBound(br, 2)) = br
½Ð «Ó­ô/¬ü¤kª©¥D «Ó­ô/¬ü¤k¾Çªø¸ò¾Ç©j
À°¦£¾Ç©f­×§ï¤@¤U¤U ? ÁÂÁ°Õ

TOP

¦^´_ 3# metrostar
  1. Sub test()
  2.     Dim fs, ar, fn$, br(1 To 10000, 1 To 7), t
  3.     Dim c, i&, j&, r&, ph$
  4.     ph = ThisWorkbook.Path & "\" 'Àɮץؿý
  5.     c = Array(0, 0, 1, 2, 3, 4, 5, 7)
  6.        fs = Application.GetOpenFilename("Text Files (*.txt), *.txt", , , , True)
  7.         If Not IsArray(fs) Then MsgBox "¨S¦³¿ï¨úÀÉ®× !!!": Exit Sub
  8.     With CreateObject("vbscript.regexp")
  9.         .Global = True
  10.         .Pattern = " +(?!$)"
  11.         s = LBound(fs)
  12.        While s <= UBound(fs)
  13.             Open fs(s) For Input As #1
  14.             ar = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
  15.             Reset
  16.             For i = 4 To UBound(ar) - 1
  17.                 r = r + 1
  18.                 ar(i) = .Replace(ar(i), "|")
  19.                 t = Split(ar(i), "|")
  20.                 For j = 1 To UBound(c)
  21.                     br(r, j) = t(c(j))
  22.                 Next
  23.                 br(r, 2) = Mid(Replace(fs(s), ph, ""), 6, 8)
  24.             Next
  25.             Close #1
  26.             s = s + 1
  27.         Wend
  28.     End With
  29.     With Sheets("Sheet2")
  30.         .Range("2:" & Rows.Count).ClearContents
  31.         .Range("a:a").NumberFormatLocal = "@"
  32.         If r > 0 Then .[a2].Resize(r, UBound(br, 2)) = br
  33.     End With
  34. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¥»©«³Ì«á¥Ñ Hsieh ©ó 2013-8-13 09:13 ½s¿è

¦^´_ 4# Hsieh


¤Ó´Î¤F,¥i¥H°õ¦æ¤F
¦hÁ¶W¯Å«Ó­ôª©¥D
¾Ç©f«D±`·P°Ê©O
±z¯u¬O¤Ó±j¤Ó±j¤F
·PÁ±z¨Ã¯¬¶P±z
©¯ºÖ¦n¹B¥Ã»·­°Á{±z¨­¤W

TOP

½Ð°Ý¶W¯ÅªO¥D¡A
Dim fs, ar, fn$, br(1 To 10000, 1 To 7), t
Dim c, i&, j&, r&, ph$

¸Ì­±ªº fn$ »P j& ¬O©w¸q¬°¡H¡H

Thanks,

TOP

¤p§Ì§Ú¥¿¦n¤]»Ý­n¦¹¸ê®Æ¡A¨Ó¬ã²ß¤@¤U!!

TOP

        ÀR«ä¦Û¦b : §ïÅܦۤv¬O¦Û±Ï¡A¼vÅT§O¤H¬O±Ï¤H¡C
ªð¦^¦Cªí ¤W¤@¥DÃD