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

[µo°Ý] ·Q½Ð±Ð¦p¦ó±q¤@­ÓtxtÀÉÂà¥X¦¨«Ü¦h­ÓexcelÀÉ

[µo°Ý] ·Q½Ð±Ð¦p¦ó±q¤@­ÓtxtÀÉÂà¥X¦¨«Ü¦h­ÓexcelÀÉ

¥»©«³Ì«á¥Ñ GBKEE ©ó 2015-2-25 15:05 ½s¿è

¦U¦ì¿Ë·Rªº¤j¤j¤È¦w
    ¦³­Ó¤p°ÝÃD·Q­n¸ò¦U¦ì½Ð¯q¡A
    ­n¦p¦ó±N¤@­Ó¦³¦n´X¦æ¸ê®ÆªºtxtÀÉ¡A¶×¥X¦¨¨C¤@¦æ¤@­ÓexcelÀÉ
    ¤p§Ì¥Ø«eªºtxtÀɮ榡¦p¤U
   
    ¦p¹Ï©Ò¥Ü¦³¤T¦æ¸ê®Æ
    ¤W­±SN¤ÎModel¬O­n¿é¥Xªº¨C­Óexecl³£­n¥N¤Jªº
    µM«á¤T¦æ¸ê®Æ¦U¦Û¶×¨ì¦Uexcel
   
   ¨ä¤¤CÄ檺¸ê®Æ¤º¦³¨â³¡¤À¡A²Ä¤@³¡¤À¸ò²Ä¤G³¡¤À¤¤¶¡¦³­ÓªÅ®æ¡A¦U¦Û­n©Ô¨ì¤£¦PªºexcelÄæ¦ì

   ¥Ø«e¤p§Ì¥u·|°µ¿ïÀɮ׫öÁä¸ò±Æ¨ìexcel¡A­W¤â¡A½Ð¦U¦ìªºÀ°¦£¡A¸U¤À·PÁÂ

¥»©«³Ì«á¥Ñ luhpro ©ó 2015-2-25 22:24 ½s¿è
¦U¦ì¿Ë·Rªº¤j¤j¤È¦w
    ¦³­Ó¤p°ÝÃD·Q­n¸ò¦U¦ì½Ð¯q¡A
    ­n¦p¦ó±N¤@­Ó¦³¦n´X¦æ¸ê®ÆªºtxtÀÉ¡A¶×¥X¦¨¨C¤@¦æ ...
flowrew µoªí©ó 2015-2-25 13:58

¶È´N§A´£¨Ñªº¹ÏÀɲq´ú¤å¦rÀɪº¤º®e,¸Õ¸Õ¬Ý...
  1. Sub nn()
  2.   Dim iMode%, iBgn%, iCol%
  3.   Dim lRow&
  4.   Dim sStr$, sTemp$
  5.   Dim vD
  6.   Dim vFs, vF
  7.   
  8.   Cells.Clear
  9.   
  10.   Set vD = CreateObject("Scripting.Dictionary")
  11.   lRow = 3
  12.   iCol = 3
  13.   iMode = 0
  14.   Set vFs = CreateObject("Scripting.FileSystemObject")
  15.   Set vF = vFs.OpenTextFile(ThisWorkbook.Path & "\123.txt", 1, -2)
  16.     Do While Not vF.AtEndOfStream
  17.       sStr = Trim(vF.ReadLine)
  18.       If sStr <> "" Then
  19.       
  20.         Select Case iMode
  21.           Case Is > 2 ' ¸ê®Æ°Ï
  22.             iBgn = InStr(1, sStr, " ")
  23.             Cells(vD("1"), iCol) = Left(sStr, iBgn - 1)
  24.             
  25.             iBgn = InStr(iBgn, sStr, " ")
  26.             GoSub SkipSpace
  27.             Cells(vD("2"), iCol) = sTemp
  28.             
  29.             iBgn = InStr(iBgn, sStr, " ")
  30.             GoSub SkipSpace
  31.             Cells(vD("3"), iCol) = sTemp
  32.             
  33.             iBgn = InStr(iBgn, sStr, " ")
  34.             GoSub SkipSpace
  35.             Cells(vD("3") + 1, iCol) = sTemp
  36.             
  37.             iBgn = InStr(iBgn, sStr, " ")
  38.             GoSub SkipSpace
  39.             Cells(vD("4"), iCol) = sTemp
  40.             iCol = iCol + 1
  41.                            
  42.           Case 0 ' SN
  43.             If InStr(1, sStr, "SN") > 0 Then
  44.               Cells(lRow, 2) = "SN"
  45.               Cells(lRow, 3) = Trim(Mid(sStr, InStr(1, sStr, ":") + 1, 10))
  46.               iMode = iMode + 1
  47.               lRow = lRow + 1
  48.             End If
  49.         
  50.           Case 1 ' Model
  51.             If InStr(1, sStr, "Model") > 0 Then
  52.               Cells(lRow, 2) = "Model"
  53.               Cells(lRow, 3) = Trim(Mid(sStr, InStr(1, sStr, ":") + 1, 10))
  54.               iMode = iMode + 1
  55.               lRow = lRow + 2
  56.             End If

  57.           Case 2 ' A B C D
  58.             iBgn = InStr(1, sStr, " ")
  59.             Cells(lRow, 2) = Left(sStr, iBgn - 1)
  60.             vD("1") = lRow
  61.             
  62.             GoSub SkipSpace
  63.             lRow = lRow + 1
  64.             Cells(lRow, 2) = sTemp
  65.             vD("2") = lRow
  66.             iBgn = InStr(iBgn, sStr, " ")
  67.             
  68.             GoSub SkipSpace
  69.             lRow = lRow + 2
  70.             Cells(lRow, 2) = sTemp
  71.             vD("3") = lRow
  72.             iBgn = InStr(iBgn, sStr, " ")
  73.             
  74.             GoSub SkipSpace
  75.             lRow = lRow + 2
  76.             Cells(lRow, 2) = sTemp
  77.             vD("4") = lRow
  78.             iMode = iMode + 1
  79.         End Select
  80.       End If
  81.     Loop
  82.   vF.Close
  83.   
  84. Exit Sub

  85. SkipSpace:
  86.     Do While Mid(sStr, iBgn, 1) = " "
  87.       iBgn = iBgn + 1
  88.     Loop
  89.     sTemp = Trim(Mid(sStr, iBgn, IIf(InStr(iBgn, sStr, " ") = 0, _
  90.                            Len(sStr) + 1, InStr(iBgn, sStr, " ")) - iBgn))
  91.   Return
  92. End Sub
½Æ»s¥N½X
test.zip (10.16 KB)

TOP

¦^´_ 2# luhpro

ÁÂÁÂluhpro¤jªº¦^µª¡A¸Ñ¤F¤£¤ÖºÃ´b¡A«D±`·PÁ¡C<(_ _)>

luhpro¤jªº¤è¦¡¬O§â¥L­Ì¦X¦¨¤@­Óexcel
§Úªº¥Øªº¬O§Æ±æ¯à°÷±q³o­Ó¦³¤T¦æ¸ê®ÆªºtxtÀɶצ¨3­Óexcel
¨C1­Óexcel¸Ì­±´N¥u¦³¤@¦æ¸ê®Æ
§Ú¥d¦b³oÃä°Ê¤£¤F¡C

TOP

¾îªº¥s¦C, ¤£¥s¦æ

TOP

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2015-2-26 14:12 ½s¿è

¦^´_ 1# flowrew
  1. Sub Test()
  2.     Dim vFile, oFs, oTs, sAll As String
  3.     Dim oRegexp, oMatch
  4.     Dim i As Long, sSN As String, sModel As String, arHeader() As String, sName As String
  5.    
  6.     vFile = Application.GetOpenFilename(FileFilter:="Text Files (*.txt),*.txt", Title:="¿ï¾ÜÀÉ®×")
  7.     If StrComp(TypeName(vFile), "Boolean", vbTextCompare) = 0 Then Exit Sub
  8.    
  9.     Set oFs = CreateObject("Scripting.FileSystemObject")
  10.     Set oTs = oFs.openTextFile(vFile, 1)
  11.     sAll = oTs.ReadAll
  12.     sAll = Replace(sAll, vbCrLf, vbLf)
  13.    
  14.     Set oRegexp = CreateObject("vbscript.regexp")
  15.     With oRegexp
  16.         .Pattern = "SN\s*:\s*(\S*)"
  17.         Set oMatch = .Execute(sAll)
  18.         If oMatch.Count > 0 Then sSN = oMatch(0).submatches(0)
  19.         
  20.         .Pattern = "Model\s*:\s*(\S*)"
  21.         Set oMatch = .Execute(sAll)
  22.         If oMatch.Count > 0 Then sModel = oMatch(0).submatches(0)
  23.         
  24.         'Data Header
  25.         .MultiLine = True
  26.         .Pattern = "^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*$"
  27.         Set oMatch = .Execute(sAll)
  28.         If oMatch.Count > 0 Then arHeader = Split(.Replace(oMatch(0), "$1,$2,$3,$4"), ",")
  29.         
  30.         'Data Value
  31.         .Global = True
  32.         .Pattern = "^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*$"
  33.         Set oMatch = .Execute(sAll)
  34.     End With
  35.    
  36.     sName = Left(vFile, Len(vFile) - 4)
  37.     For i = 0 To oMatch.Count - 1
  38.         With Workbooks.Add
  39.             With .Sheets(1)
  40.                 .[B3].value = "SN"
  41.                 .[C3].value = sSN
  42.                 .[B4].value = "Model"
  43.                 .[C4].value = sModel
  44.                
  45.                 .[B6].value = arHeader(0)
  46.                 .[C6].value = oMatch(i).submatches(0)
  47.                 .[B7].value = arHeader(1)
  48.                 .[C7].value = oMatch(i).submatches(1)
  49.                
  50.                 .[B9].value = arHeader(2)
  51.                 .[C9].value = oMatch(i).submatches(2)
  52.                 .[C10].value = oMatch(i).submatches(3)

  53.                 .[B11].value = arHeader(3)
  54.                 .[C11].value = oMatch(i).submatches(4)
  55.             End With
  56.             .SaveAs sName & "_" & i + 1 & ".xlsx"
  57.             .Close
  58.         End With
  59.     Next
  60.     MsgBox "§¹¦¨"
  61. End Sub
½Æ»s¥N½X
ªí¹F¤£²M¡BÃD·N¤£©ú½T¡B¨SªþÀɮ׮榡¡B¨S¦³°Q½×°ÝÃDªººA«×~~~~~~¥H¤W·R²ö¯à§U¡C

TOP

¾îªº¥s¦C, ¤£¥s¦æ
bobomi µoªí©ó 2015-2-26 11:43


ªü    ¹ï¤£°_    ¤p§Ì·d¤£²M·¡   ·PÁ¤j¤j«ü±Ð

TOP

¦^´_  flowrew
stillfish00 µoªí©ó 2015-2-26 14:08


¦hÁ¤j¤j¡A¯uªº¤À¦¨¤T¥÷¤F¡A¤Ó±j¤F¡A·PÁ±zªº«ü¾É

TOP

Dear  stillfish00¤j¤j

·Q½Ð±Ð¤@¤U¡A§Ú¥Î¥¨¶°¿ý¤F­Óform¡A¥u¬O²³æªº¤W¦â¤Î¥[¤W¼Ð»y¡A©Ô®æ¤l¤j¤pµ¥
§Æ±æ¯à°÷·íexcel¨C¤@­Ó­È±a¤J«á(´N¬O±z¼gªºµ{¦¡ªº²Ä56¦C«á­±)¥[¤W³o­Ó¥¨¶°§âexcelµe­±¾ã²z¡C
¦ý¬O´ú¸Õ³£¥X²{1004¡C§Ú¨S¦³«Å§i¥ô¦óªF¦è¡A¥u¬O§â¨º­Ó¥¨¶°¥[¤W¥h¡C
«á¨Ó¦A³v¦æ°£¿ùªº®É­Ô¡A¤@¨ì§Ú¥[ªº²Ä¤@¦æ´N¥d¦í¤F¡C
¦A·Ð½Ð±zÀ°À°¦£¡A·P®¦~
¤j·§¦p¤U­±³o¼Ë
  1.   sName = Left(vFile, Len(vFile) - 4)
  2.     For i = 0 To oMatch.Count - 1
  3.         With Workbooks.Add
  4.             With .Sheets(1)
  5.                 .[B3].Value = "SN"
  6.                 .[C3].Value = sSN
  7.                 .[B4].Value = "Model"
  8.                 .[C4].Value = sModel
  9.                
  10.                 .[B6].Value = arHeader(0)
  11.                 .[C6].Value = oMatch(i).submatches(0)
  12.                 .[B7].Value = arHeader(1)
  13.                 .[C7].Value = oMatch(i).submatches(1)
  14.                
  15.                 .[B9].Value = arHeader(2)
  16.                 .[C9].Value = oMatch(i).submatches(2)
  17.                 .[C10].Value = oMatch(i).submatches(3)

  18.                 .[B11].Value = arHeader(3)
  19.                 .[C11].Value = oMatch(i).submatches(4)
  20.             End With
  21.         
  22.                     Range("B2").Select
  23.                     ActiveCell.FormulaR1C1 = "¥Ò"
  24.                     Range("B3").Select
  25.                     ActiveCell.FormulaR1C1 = _
  26.                         "¤A" & Chr(10) & "¤þ"
  27.                     Range("B2:H2").Select
  28.                     With Selection
  29.                         .HorizontalAlignment = xlCenter
  30.                         .VerticalAlignment = xlBottom
  31.                         .WrapText = False
  32.                         .Orientation = 0
  33.                         .AddIndent = False
  34.                         .IndentLevel = 0
  35.                         .ShrinkToFit = False
  36.                         .ReadingOrder = xlContext
  37.                         .MergeCells = False
  38.                     End With
½Æ»s¥N½X

TOP

¦^´_ 8# flowrew
ªþÀɧa¡A§A¬O»¡¦³¨Ï¥ÎUserForm?  À³¸Ó¬O­n§ï¦¨¨SSelectªº¼gªk§a
ªí¹F¤£²M¡BÃD·N¤£©ú½T¡B¨SªþÀɮ׮榡¡B¨S¦³°Q½×°ÝÃDªººA«×~~~~~~¥H¤W·R²ö¯à§U¡C

TOP

¦^´_ 9# stillfish00

Dear stillfish00¤j
§Ú§âªF¦è©ñ¦bªþ¥ó¸Ì,FYI
¥t¥~¬°¦ó¤£¯à¨Ï¥Îselect¡A¦A½Ð±z«ü¾É¡A·P®¦

Desktop.rar (3.45 KB)

TOP

        ÀR«ä¦Û¦b : ·R¤£¬O­n¨D¹ï¤è¡A¦Ó¬O­n¥Ñ¦Û¨­ªº¥I¥X¡C
ªð¦^¦Cªí ¤W¤@¥DÃD