Board logo

標題: [發問] 請問高手如何篩選第一筆及最後一筆 [打印本頁]

作者: anotny    時間: 2010-8-30 21:39     標題: 請問高手如何篩選第一筆及最後一筆

公司有一些卡鐘資料
例如:20100826,0827,1234
       20100826,0844,3586
      20100826,1844,7896
文字檔,我要如何寫一個VBA自動篩選器,篩選文字檔每個人第一筆及最後一筆資料,讓我家小姐用,請高手指點小弟謝謝!!
作者: kimbal    時間: 2010-8-31 00:41

公司有一些卡鐘資料
例如:20100826,0827,1234
       20100826,0844,3586
      20100826,1844,7896
文 ...
anotny 發表於 2010-8-30 21:39


方法有很多, 這個是選上文檔直接匯入
  1.    
  2. sub test()
  3. Dim filename As String

  4.     With Application.FileDialog(msoFileDialogOpen)
  5.         .AllowMultiSelect = False
  6.         .Show
  7.         If .SelectedItems.Count > 0 Then
  8.             filename = .SelectedItems(1)
  9.         Else
  10.             Exit Sub
  11.         End If
  12.     End With

  13.    
  14.     Dim oFSO
  15.     Set oFSO = CreateObject("Scripting.FileSystemObject")
  16.     Set sdmax = CreateObject("Scripting.Dictionary")
  17.     Set sdmin = CreateObject("Scripting.Dictionary")

  18.     Dim strDate As String
  19.     Dim strTime As String
  20.     Dim strNo As String
  21.     Set oFS = oFSO.OpenTextFile(filename)

  22.     Do Until oFS.AtEndOfStream
  23.         sText = oFS.ReadLine
  24.         strDate = Split(sText, ",")(0)
  25.         strTime = Split(sText, ",")(1)
  26.         strNo = Split(sText, ",")(2)
  27.         
  28.         If sdmin.exists(strNo) Then
  29.             sdmax(strNo) = strTime
  30.         Else
  31.             sdmin.Add strNo, strTime
  32.             sdmax.Add strNo, strTime
  33.         End If
  34.         
  35.     Loop
  36.    
  37.     Range("A1").Resize(sdmin.Count, 1).Value = Application.Transpose(sdmin.keys)
  38.     Range("B1").Resize(sdmin.Count, 1).Value = Application.Transpose(sdmin.items)
  39.     Range("C1").Resize(sdmin.Count, 1).Value = Application.Transpose(sdmax.items)
  40.     Set sdmin = Nothing
  41.     Set sdmax = Nothing
  42.     oFS.Close
  43.     oFSO = Null
  44. end sub
複製代碼





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