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

Liên hệ QC

ptm0412

Bad Excel Member
Thành viên BQT
Administrator
Tham gia
4/11/07
Bài viết
13,778
Được thích
36,276
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
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.
 

File đính kèm

  • DutoanXD.xls
    33.5 KB · Đọc: 151
Lần chỉnh sửa cuối:
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:
PHP:
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
 

File đính kèm

  • DutoanXD(1).xls
    38.5 KB · Đọc: 113
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:

Style01.gif

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:

Style02.gif

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.
 

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:

View attachment 62691

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:

View attachment 62693

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.
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:
PHP:
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

Xin thày giải thích giúp cho sao không giải quyết được vấn đề 1 lần mà sao phải phức tạp như vậy?
 
Xin thày giải thích giúp cho sao không giải quyết được vấn đề 1 lần mà sao phải phức tạp như vậy?
Tôi đâu có biết...
Cũng giống Name vậy thôi, có 1 số "cứng đầu" đến mức phải xóa đến vài lần mới "bứng gốc" được chúng
 
Em dùng code này:
PHP:
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.
 
Lần chỉnh sửa cuố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="콤마 [0]_ 비목별 월별기술" 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
 

File đính kèm

  • ThuChi.xlsx
    22.4 KB · Đọc: 69
Trong Script Editor, Stylesheet, chỉ cần xoá style 62 là xong.
 
Lần chỉnh sửa cuối:
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ứ.
 
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="콤마 [0]_ 비목별 월별기술" 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
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.
 

File đính kèm

  • NhoXoaNameStyles.rar
    277.6 KB · Đọc: 68
Lần chỉnh sửa cuối:
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ả.
 

File đính kèm

  • NhoXoaNameStyles.rar
    267.7 KB · Đọc: 70
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>
<cellStyleXfs... /cellStyleXfs>
Thay chuổi mà bắt đầu là
<cellStyleXfs
Và kết thúc là... /cellStyleXfs>

Từ Winrar làm thế nào mở = notePad.


Cám ơn nhiều, cách này có vẻ dễ làm hơn.
Tức là kg biết làm cách nào nó đưa vào mấy cái name và style đó mặc dùng dùng Asap và Ex 2007 xóa hết.
Để biết mình sẽ gài vào vài cái.
Thay rồi mà mở ra vẫn vậy
 

File đính kèm

  • styles.rar
    4.5 KB · Đọc: 52
Lần chỉnh sửa cuối:
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.

Trong file này chỉ cần xoá style .xl68 trong Script Editor (nó khác lạ so với các style khác)

Vả lại, giả sử xoá 1 style nào đó mà vẫn còn, xoá thử style thứ nhì, ...
Nhớ là chỉ refresh trong toolbar hiện ra, chứ không save, hoặc chỉ save as để thử nghiệm.
 
Web KT
Back
Top Bottom