Tìm code hay Add-ins tạo File mới theo các điều kiện... (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,061
Được thích
175
Các Thầy/cô & anh/chị giúp em như sau
Ví dụ: em có File A, trong File này có nhiều sheet như sheet1, sheet 2, ...

Bây giờ em sẽ chọn 1 số sheet bất kỳ của File A để tạo 1 File B (File mới)
Khi tạo file B này với các điều kiện:
1/ Paste value toàn bộ công thức
2/ Xóa toàn bộ Names
3/ Xóa toàn bộ Comments
4/ Xóa toàn bộ Objects
5/ Xóa toàn bộ code (code trong sheet đi kèm)
6/ Nhưng giữ lại Format
Trước đây em có thấy thầy ndu96081631 có viết code này, nhưng tìm hoài vẫn chưa thấy
Vui lòng viết giúp code trên hoặc nếu có bài tương tự thì vui lòng cho link
Em cảm ơn!
 
Các Thầy/cô & anh/chị giúp em như sau
Ví dụ: em có File A, trong File này có nhiều sheet như sheet1, sheet 2, ...

Bây giờ em sẽ chọn 1 số sheet bất kỳ của File A để tạo 1 File B (File mới)
Khi tạo file B này với các điều kiện:
1/ Paste value toàn bộ công thức
2/ Xóa toàn bộ Names
3/ Xóa toàn bộ Comments
4/ Xóa toàn bộ Objects
5/ Xóa toàn bộ code (code trong sheet đi kèm)
6/ Nhưng giữ lại Format
Trước đây em có thấy thầy ndu96081631 có viết code này, nhưng tìm hoài vẫn chưa thấy
Vui lòng viết giúp code trên hoặc nếu có bài tương tự thì vui lòng cho link
Em cảm ơn!
Thầy ndu96081631 có tới 29121 bài sao Chị tìm nổi. Thấy bài nào hay phải chụp giật luôn chứ ( Đưa vào thư viện của mình chứ)
Không thì Chị cứ đưa file thể nào Thầy cũng ghé qua (Cách này là nhanh nhất đóa Chị à) :p:p:p
 
Upvote 0
Các Thầy/cô & anh/chị giúp em như sau
Ví dụ: em có File A, trong File này có nhiều sheet như sheet1, sheet 2, ...

Bây giờ em sẽ chọn 1 số sheet bất kỳ của File A để tạo 1 File B (File mới)
Khi tạo file B này với các điều kiện:
1/ Paste value toàn bộ công thức
2/ Xóa toàn bộ Names
3/ Xóa toàn bộ Comments
4/ Xóa toàn bộ Objects
5/ Xóa toàn bộ code (code trong sheet đi kèm)
6/ Nhưng giữ lại Format
1> Save 1 sheet hoặc nhiều sheets thành file ---> Không vấn đề
2> Xóa comments ---> Không vấn đề
3> Xóa objects ---> Không vấn đề
4> Xóa code ---> Không vấn đề
5> Giữ format ---> Không vấn đề
6> Xóa names ---> Không phải chuyện dễ, bởi có 1 số name cứng đầu thì không code nào xóa được
Vậy bạn tính sao?
Trước đây em có thấy thầy ndu96081631 có viết code này, nhưng tìm hoài vẫn chưa thấy
Đó là file dưới đây
 

File đính kèm

Upvote 0
1> Save 1 sheet hoặc nhiều sheets thành file ---> Không vấn đề
2> Xóa comments ---> Không vấn đề
3> Xóa objects ---> Không vấn đề
4> Xóa code ---> Không vấn đề
5> Giữ format ---> Không vấn đề
6> Xóa names ---> Không phải chuyện dễ, bởi có 1 số name cứng đầu thì không code nào xóa được
Vậy bạn tính sao?
Dạ trước mắt cứ xóa name, nếu có 1 số name cứng đầu thì em sẽ tính sau, nhờ Thầy giúp em, em cảm ơn!
 
Upvote 0
Dạ trước mắt cứ xóa name, nếu có 1 số name cứng đầu thì em sẽ tính sau, nhờ Thầy giúp em, em cảm ơn!
Xóa name dễ mà bạn. Code đầy trên GPE rồi còn gì, chẳng hạn:
Mã:
Sub Macro1()
  Dim N As Name
  For Each N In ActiveWorkbook.Names
    N.Delete
  Next
End Sub
 
Upvote 0
Xóa name dễ mà bạn. Code đầy trên GPE rồi còn gì, chẳng hạn:
Mã:
Sub Macro1()
  Dim N As Name
  For Each N In ActiveWorkbook.Names
    N.Delete
  Next
End Sub
Hiện em đã tìm
PHP:
Sub xoa_Objects()
    Dim sh As Worksheet
    For Each sh In Worksheets
        sh.DrawingObjects.Delete
    Next
End Sub

PHP:
Sub DeleteComments()    ' delete all comment
    Dim sh As Worksheet, cm As Comment
    For Each sh In ActiveWorkbook.Worksheets
        For Each cm In sh.Comments
            cm.Delete
        Next
    Next
End Sub
Còn
Thì save file .xlsx là OK
Còn
1/ Paste value toàn bộ công thức
Em không biết!
Mặt khác, làm sao tích hợp được các code trên vào File của Thầy! (vì File của Thầy, em đọc đâu hiểu gì nhiều)
 
Upvote 0
Sub DeleteComments()
'.....
Paste value toàn bộ công thức
PHP:
Sub Xóa_Comments()
    Sheet1.UsedRange.ClearComments
    'Sheet1.cells.ClearComments
End Sub

Sub Chuyên_Giá_Tri()
    Dim vCal
    vCal = Application.Calculation
    Application.Calculation = xlCalculationManual
    Sheet1.UsedRange.Value = Sheet1.UsedRange.Value
    Application.Calculation = vCal
End Sub
 
Upvote 0
Mặt khác, làm sao tích hợp được các code trên vào File của Thầy! (vì File của Thầy, em đọc đâu hiểu gì nhiều)
Xóa comment và paste values ---> Làm giống như bài #7 nhé
Còn chuyện tích hợp luôn vào AddIn của tôi: Tôi nghĩ không nên vì 2 code không cùng chức năng. Bạn có thể tạo 1 Addin nữa chuyên về:
- Xóa Shapes
- Xóa Comments
- Xóa Validation
- Xóa Conditional Formating
.... vân.... vân...
Thì cái "đống" này sẽ là 1 AddIn có tính năng riêng biệt (đương nhiên sẽ cho phép chọn để xóa từng loại một)
 
Upvote 0
Sub Chuyên_Giá_Tri() Dim vCal vCal = Application.Calculation Application.Calculation = xlCalculationManual Sheet1.UsedRange.Value = Sheet1.UsedRange.Value Application.Calculation = vCal End Sub
Code trên chỉ paste value cho Sheet 1, còn muốn paste value 1 lúc cho toàn file thì code như thế nào vậy bạn?
 
Upvote 0
Code trên chỉ paste value cho Sheet 1, còn muốn paste value 1 lúc cho toàn file thì code như thế nào vậy bạn?
Trời! Thì vòng lập duyệt tất cả các sheet thôi
Mã:
Sub PasteValues()
  Dim wks As Worksheet
  For Each wks In ActiveWorkbook.Worksheets
    wks.UsedRange.Value = wks.UsedRange.Value
  Next
End Sub
Sao hỏi... kỳ vậy ta?
???!!!
 
Upvote 0
Trời! Thì vòng lập duyệt tất cả các sheet thôi
Mã:
Sub PasteValues()
  Dim wks As Worksheet
  For Each wks In ActiveWorkbook.Worksheets
    wks.UsedRange.Value = wks.UsedRange.Value
  Next
End Sub
Sao hỏi... kỳ vậy ta?
???!!!
Code trên sử dụng khi đang Filter thì nó paste value tùm lum
Cho em hỏi có code nào paste value khi đang filter không? ( em không muốn gỡ filter)
 

File đính kèm

Upvote 0
Code trên sử dụng khi đang Filter thì nó paste value tùm lum
Cho em hỏi có code nào paste value khi đang filter không? ( em không muốn gỡ filter)
Đây cũng là tình huống đáng lưu ý. Để tránh nó, không gì bằng hũy autofilter ở các sheet
Mã:
Sub PasteValues()
  Dim wks As Worksheet
  For Each wks In ActiveWorkbook.Worksheets
    wks.AutoFilterMode = False
    wks.UsedRange.Value = wks.UsedRange.Value
  Next
End Sub
 
Upvote 0
Đây cũng là tình huống đáng lưu ý. Để tránh nó, không gì bằng hũy autofilter ở các sheet
Mã:
Sub PasteValues()
  Dim wks As Worksheet
  For Each wks In ActiveWorkbook.Worksheets
    wks.AutoFilterMode = False
    wks.UsedRange.Value = wks.UsedRange.Value
  Next
End Sub
Vậy là không có cách nào paste value mà không cần hủy Autofilter hay ẩn hàng!
Em cảm ơn Thầy và các bạn nhiều!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom