Hỏi cách xoá Formating Style cứng đầu.

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Tôi có 1 số file Excel gốc từ Korea (Office tiếng Korea), không biết bằng cách nào mà có đến trên 6 trăm mấy chục formating Style.
Dùng ASAP tôi đã xoá được trên 600, chỉ còn lại 12 Custom Style là cứng đầu không xoá được.
Xoá bằng tay thì nút Delete bị disable, không làm được.
Vậy xin hỏi có cách nào diệt được lũ củ sâm bất trị này hay không?
Xin cám ơn.

Em dùng code này:

Sub Test()
Dim i As Long
On Error Resume Next
With ActiveWorkbook
For i = .Styles.Count To 1 Step -1
If .Styles(i).BuiltIn = False Then
.Styles(i).Locked = False
.Styles(i).Delete
End If
Next
MsgBox .Styles.Count
End With
End Sub
Tuy nhiên mỗi lần chạy code xong phải đóng và lưu file, xong, mở file rồi chạy code lại lần nữa… rồi lại đóng và lưu file.. Đến khi nào kiểm tra thấy chẳng còn mấy ông nội nữa thì thôi

www.giaiphapexcel.com/diendan/threads/h%E1%BB%8Fi-c%C3%A1ch-xo%C3%A1-formating-style-c%E1%BB%A9ng-%C4%91%E1%BA%A7u.48778/#post380671

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 3 ▥ 0
Quảng cáo

Bạn nên đọc

3 Responses

  1. hands says:

    Mình cũng mày mò viết code rồi ấy, nhưng chỉ mò ra workbook.Styles(i), nhưng đến BuiltIn thì không biết nên là True hay False, và không để ý có locked hay không nữa chứ!
    Nên viết vài câu rồi bỏ đó. Ẹc, ndu bữa nay …, thức khuya dữ!

    Dùng phương pháp tà đạo hơn,
    Vào file Style.xlm xoá đọan style mới đi, có một vài style mặc định bị nó ép cho ẩn, thì cho nó hiện lên.
    (nói vậy thôi, tại vì xem file styles.xlm rồi như chư edit và nhúng vào lại được)


    Chợt nhớ ra 2003 có vụ Script Editor, bèn nhấn Al Shift F11 tìm tìm 1 hồi trong số các style thấy 1 ku củ sâm, mình bèn xoá béng:

    2495

    Xuống dưới thấy 1 số style con không có cha, hoặc có cha là củ sâm, xoá nốt:

    2494

    Ra Excel thấy nó bảo: Mày vừa làm kí rì đó? Có lưu thay đổi hông, hay là lưu ra file khác?

    Mình cẩn thận lưu ra file khác 1 cái. Trời thần ơi! Chẳng còn ku củ sâm chết tiệt nào! Sướng quá đi mất!

    Giải thích:
    Nghĩa là ghi lại các style tên lạ vừa xoá, Giả sử xoá style 16, tìm các style con có câu ParentStyle: Style16 để xoá luôn.

    Ngoài ra, khi thấy những style quen thuộc như Normal, Heading, … ta nhớ số của chúng. Lát xuống thấy Style con nào có ParentStyle nào lạ hoắc, thì cũng xoá nốt.

  2. hands says:

    Hay nhỉ, em cũng có khi dùng cách này, nhưng có lúc nó treo máy luôn, hoặc nó kg cho lưu lại Style đó.
    Và nếu OK thì các format nó cũng đi luôn. Ngồi mò mẫm mấy style chọn mà xóa hơi phê.

    Em dùng code này:

    Sub Test()
    Dim i As Long
    On Error Resume Next
    With ActiveWorkbook
    For i = .Styles.Count To 1 Step -1
    If .Styles(i).BuiltIn = False Then
    .Styles(i).Locked = False
    .Styles(i).Delete
    End If
    Next
    MsgBox .Styles.Count
    End With
    End Sub
    Tuy nhiên mỗi lần chạy code xong phải đóng và lưu file, xong, mở file rồi chạy code lại lần nữa… rồi lại đóng và lưu file.. Đến khi nào kiểm tra thấy chẳng còn mấy ông nội nữa thì thôi

    Chủ đề này hơi lâu, nay nhờ các bạn làm thế nào xóa triệt để các Styles
    Vào menu format mở các style thì phần delete không cho.
    Dùng Code trên thì xóa mãi cũng không hết.
    Dùng Asap thì xóa xong, mở lên cũng thấy lại.
    Dùng Name Manage cũng kg xong.
    Dùng Alt Shift F11 xóa sạch StylesSheets thì mất hết định dạng.
    Nhất là mấy cái styles dự toán xây dựng.
    Cám ơn.

    ThuNghi thử làm theo kiểu này xem:
    – Mở file xls trên rồi Save As thành xlsx
    – Đổi đuôi file .xlsx thành .zip (ví dụ ThuChi.xlsx thành ThuChi.zip)
    – Mở file zip này bằng WinRAR, vào thư mục xl, copy file styles.xml ra Desktop
    – Mở file styles.xml bằng Notepad, bấm Ctrl + F để tìm từ khóa cellStyle name
    – Thấy cái nào cần xóa thì xử nó —> Ví dụ tìm thấy dòng <cellStyle name="콤마 _ 비목별 월별기술" xfId="47" /> —> Xóa luôn dòng này
    – Sau khi xóa xong, đếm xem còn lại bao nhiêu dòng có chứa từ khóa cellStyle name thì hãy sửa dòng <cellStyles count="50"> lại cho phù hợp (sửa số 50 lại bằng số vừa đếm xong)
    – Đóng và lưu file styles.xml vừa edit xong
    – Kéo file styles.xml thà vào trong file zip (đúng thư mục xl)
    – Đóng file zip, đổi tên file .zip thành .xlsx
    – Mở lại file xlsx và kiểm tra
    ————–
    Làm thử cho ThuNghi bằng cách vừa trình bày ở trên

    Trong Script Editor, Stylesheet, chỉ cần xoá style 62 là xong.

    Giờ hầu hết người ta xài Excel 2007 và Excel 2010 không hà, lấy đâu ra Script Editor để làm sư phụ ơi
    Ẹc… Ẹc…

    Cách ndu hay quá, nhấn thank rồi.
    Tại ThuNghi nói xoá hết style sheet trong Script Editor, nên mới làm xem sao. Ai lại xoá hết bao giờ, thấy style có tên lạ lạ, xoá 1 cái, refresh thử, rồi xoá tiếp chứ.

  3. hands says:

    Cách này hay nhưng phức tạp quá, nhìn file notepad như đám rừng mà biết cách nào cần xóa thì cũng phê quá.
    To Bác Mỹ: E thử xóa style 62 cũng file gần như vậy mà nó vẫn còn. File dùng Ex 2003. Dùng Asap thì vẫn còn mấy styles "… vung ang …". Không hiểu mấy cái này phát xuất từ đâu.
    Dùng name manager thì nó ra 1 lô name mà link. => Những file mở nó hay báo kg link dc những link từ C:….tmp.
    Vậy Bác Mỹ và NDU nghiên cứu cách gì dễ hơn.
    Cám ơn.
    Đính kèm file có 2 sh styles (asap) và nameManage. File dùng Ex 2003.

    Em thường làm như thế này:
    1. Đối với Styles. Làm gần giống như cách của anh ndu:
    Mở file và save as lại với đuôi .xlsm
    Đóng file lại và đổi đuôi file thành .zip
    Dùng WinRAR mở file lên (double click vào file), vào thư mục xl, mở file styles.xml bằng notepad.
    Dùng chức năng find tìm chuỗi <cellStyleXfs. Đưa con trỏ chuột về trước <cellStyleXfs và Enter vài cái để đánh dấu.
    Dùng chức năng find tìm chuỗi /cellStyleXfs>
    Thay thế đoạn <cellStyleXfs… /cellStyleXfs> bằng dòng <cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>
    Save file lại. WinRAR sẽ hỏi có update file không thì chọn Yes
    Tắt WinRAR, đổi đuôi file lại thành .xlsm, mở file lên và save as lại định dạng ban đầu (.xls)
    2. Đối với name: Dùng code cho hiện hết name ra và dùng Excel 2007 trở lên để xóa.

    File đính kèm là kết quả.

    Cách này hay nhưng phức tạp quá, nhìn file notepad như đám rừng mà biết cách nào cần xóa thì cũng phê quá.

    Tuy là "đám rừng" nhưng cũng có nguyên tắc của nó… Cách bố trí gần giống với lập trình html (ai biết ngôn ngữ này sẽ thấy rất dễ)
    Code được bố trí trong từng tag, mỗi tag có từ khóa bắt đầu là dấu < và kết thúc bằng dấu />
    Ví dụ tìm thấy đoạn cellStyle name="콤마 thì phải xem dấu < trước nó và dấu /> sau nó —> 1 "bộ" của nó phải nằm trong cặp tag </> , ví dụ thế này: <cellStyle name="콤마 _ 비목별 월별기술" xfId="47" /> —> Xóa nguyên con "bộ" này là xong

    Trong đó thông tin dài quá em search mãi mà chưa ra thày ah, vì file này em cần sử dụng ngay đầu giờ chiều nay.

    Kính mong thày giúp em nốt file này để trước mắt em sử dụng cho kịp Báo cáo ah?

    Cảm ơn thày rất nhiều

    Lúc mở file styles.xml bằng Notepad, bấm Ctrl + F để tìm từ khóa cellStyle name là tới ngay vị trí cần tìm thôi, đâu cần phải dò bằng mắt chứ
    Làm cho bạn đây (có điều file này còn "bệnh" nặng hơn file trước)
    Một vài chổ bị mất format, bạn tự sửa lại nhé

    em thấy trên store của microsoft có app XLStyles Tool giải quyết được vấn đề này khá hay. Các bác thử dùng xem sao.

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm