1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Cách xoá dòng trắng trong word2003

Chủ đề trong 'Hỏi đáp Tin học' bởi vanxuanemp, 12/05/2006.

  1. 0 người đang xem box này (Thành viên: 0, Khách: 0)
  1. vanxuanemp

    vanxuanemp Thành viên mới

    Tham gia ngày:
    07/07/2005
    Bài viết:
    4
    Đã được thích:
    0
    Cách xoá dòng trắng trong word2003

    Hi all!
    Tôi có một file word với khoảng 2000 trang, trong đó có những dòng trắng với khoảng trắng là 1 hoặc 2 khoảng trắng gì đó, tôi muốn xoá nhưng nếu xoá bằng tay thì Sad ai có biết cách viết macro trong word xin hãy chỉ giáo cho tôi đoạn mã đó và cách xử lý! Nếu đoạn trắng đó là rất nhiều ký tự spacebar có thể chiếm cả dòng thì đoạn mã có thay đổi như thế nào?
    Có một người viết giúp tôi đoạn mã này, nhưng trong file của tôi có cả những bức ảnh, vậy mà nó xoá cả ảnh nữa, và nếu số trang trên 100 trang thì nó báo lỗi treo word không thể hoạt động được nữa và tôi phải endtask word! Ai biết xin chỉ giáo dùm nhé, tôi xin cảm ơn rất nhiều!!
    Sub RemoveEmptyLines1()
    '' Loop each line, check and remove
    '' Written by W_Hat, 20060427

    Dim totallines As Integer
    Dim length As Integer
    Dim count As Integer

    Dim strLine As String

    '' Lay tong so'' lines
    totallines = ActiveDocument.BuiltInDocumentProperties("NUMBER OF LINES")
    count = 0

    '' Ve` dau document
    Selection.HomeKey Unit:=wdStory, Extend:=wdMove

    '' Duyet tu`ng line
    For i = 1 To totallines
    '' Select 1 line
    ActiveDocument.Bookmarks("LINE").Select

    '' Bo? va thay the cac ki tu dac biet
    strLine = Selection.Text

    strLine = Trim(strLine)
    strLine = Replace(strLine, vbTab, "")
    strLine = Replace(strLine, vbCrLf, "")
    strLine = Replace(strLine, Chr(13), "")
    strLine = Replace(strLine, Chr(32), "")
    '' Tinh chieu da`i line ket qua, neu line tro''ng thi` xo''a line
    length = Len(strLine)
    If length = 1 Then
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.TypeBackspace

    count = count + 1
    Else
    '' Duyet line ke tiep
    Selection.MoveRight Unit:=wdCharacter, count:=1, Extend:=wdMove
    End If
    Next i

    MsgBox "RemoveEmptyLines finish. Total empty lines is " & count
    End Sub
  2. tottochan81

    tottochan81 Thành viên rất tích cực

    Tham gia ngày:
    05/04/2006
    Bài viết:
    4.099
    Đã được thích:
    15
    Mình có cách này, bạn thử áp dụng xem thế nào nhé:
    Dùng một mẹo nhỏ trong chức năng Replace đó bạn:
    Thế này nhé, cái tài liệu của bạn í mà, bạn không muốn tồn tại một nhóm khoảng trắng nào mà có số lượng từ 2 trở lên đúng không, (nếu có khoảng trắng thì chỉ là 1khoảng trắng là khoảng trắng dấu cách giữa các từ.)
    Vì vậy ta làm thế này nhé;
    Lần 1: Dùng chức năng Replace:
    Find what: (gõ đúng 3 khoảng trắng)
    Replace with: (gõ đúng 2 khoảng trắng)
    Bấm Replace all. Sau đó word báo là đã replace được 1000222 từ chẳng hạn, thì bạn cứ OK, sau đó, tiếp tục bấm Replace all, nó lại báo thay được bao nhiêu, lại ok.... Quá trình này cứ tiếp tục cho đến khi word không tìm được một chỗ nào đó có 3 kí tự trống kề nhau nữa.
    Sau thao tác trên, tài liệu của bạn bây giờ chỉ còn các nhóm khoảng trắng gồm 1 khoảng trắng hoặc 2 khoảng trắng thôi.
    Giờ thì dễ hơn rồi, bạn lại dùng chức năng Replace nhé, nhưng mà:
    Find what: (gõ đúng 2 khoảng trắng)
    Replace with: (gõ đúng 1 khoảng trắng)
    Bấm replace all.
    (Lần này chỉ phải làm có 1 lần thui)
    Kết quả: Giờ thì tài liệu của bạn ko có chỗ nào có >= 2 khoảng trắng đứng cạnh nhau nữa. OK?
    Đây là tài liệu lúc ban đàu này:
    [​IMG]
    Còn đây là kết quả này:
    [​IMG]
    Được tottochan81 sửa chữa / chuyển vào 14:57 ngày 12/05/2006

Chia sẻ trang này