返回列表 上一主題 發帖

符合條件, 刪除多行

本帖最後由 Hsieh 於 2015-9-3 10:18 編輯

回復 1# yc1031 沒有技巧的方法
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary") '建立承接容器
  3. Open "stat_descriptions.txt" For Input As #1 '開啟文字檔
  4. Do While Not EOF(1)
  5.    i = i + 1
  6.    Input #1, mystr '將文字讀入變數
  7.    d.Add i, mystr '將文字寫入容器
  8.    If mystr = "lang ""Traditional Chinese""" Then
  9.    j = i
  10.      Do Until IsNumeric(d(j)) '判斷是否為數值
  11.      d.Remove j '移除
  12.      j = j - 1
  13.      Loop
  14.    End If
  15. Loop
  16. d.Remove j
  17. Close #1
  18. Sheets(2).[A1].Resize(d.Count, 1) = Application.Transpose(d.items) '寫入工作表
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 3# yc1031
直接用EXCEL開啟文字檔就不會亂碼
  1. Sub ex1()
  2. Dim A As Range
  3. fs = "D:\test\stat_descriptions.txt" '文字檔
  4. With Workbooks.Open(fs) '以EXCEL開啟文字檔
  5. Application.ScreenUpdating = False
  6.    With .Sheets(1)
  7.    Set A = .UsedRange.Find("lang ""Traditional Chinese""", lookat:=xlWhole) '尋找字串
  8.    Do Until A Is Nothing '直到找不到字串
  9.       r = A.Row
  10.       Do Until IsNumeric(.Cells(r, 2)) And .Cells(r, 2) <> "" '往上找數值
  11.         .Rows(r).Delete '刪除列
  12.         r = r - 1
  13.       Loop
  14.       .Rows(r).Delete
  15.    Set A = .UsedRange.Find("lang ""Traditional Chinese""", lookat:=xlWhole)
  16.    Loop
  17.    End With
  18. End With
  19. Application.ScreenUpdating = True
  20. End Su
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題