Code VBA mở nhiều file, value các sheet, lưu và đóng file

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Emyeuexcel

Thành viên thường trực
Tham gia
9/6/16
Bài viết
301
Được thích
30
Chào anh chị em GPE,

Mình có nhiều file lưu chung một thư mục. Các file này đang có công thức.
Mình cần copy paste value hết công thức trong các sheet của những file này. Nhưng làm thủ công thì lâu quá.
Mong anh chị em GPE giúp mình code VBA thao tác cho nhanh theo trình tự mở lần lượt các file cùng thư mục, copy paste value các sheet, lưu và đóng file.

Cảm ơn các anh chị em nhiều!
Năm mới sắp đến, mình chúc toàn thể thành viên GPE sức khỏe thành công!
Chúc diễn đàn luôn nhiều thành viên và có nhiều đóng góp tích cực!
 
Chào anh chị em GPE,

Mình có nhiều file lưu chung một thư mục. Các file này đang có công thức.
Mình cần copy paste value hết công thức trong các sheet của những file này. Nhưng làm thủ công thì lâu quá.
Mong anh chị em GPE giúp mình code VBA thao tác cho nhanh theo trình tự mở lần lượt các file cùng thư mục, copy paste value các sheet, lưu và đóng file.

Cảm ơn các anh chị em nhiều!
Năm mới sắp đến, mình chúc toàn thể thành viên GPE sức khỏe thành công!
Chúc diễn đàn luôn nhiều thành viên và có nhiều đóng góp tích cực!
Hên xui, nhờ AI làm giúp bạn test thử =))
chú ý đổi tên file và đường dẫn thành file phải là tiếng việt không dấu.

Mã:
Sub CopyPasteValuesInFolder()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet

    ' Đường dẫn tới thư mục chứa các file
    folderPath = "C:\YourFolderPath\" ' Thay đổi đường dẫn này thành đường dẫn thư mục của bạn

    ' Lấy tên file đầu tiên trong thư mục
    fileName = Dir(folderPath & "*.xls*")

    ' Lặp qua tất cả các file trong thư mục
    Do While fileName <> ""
        ' Mở workbook
        Set wb = Workbooks.Open(folderPath & fileName)
        
        ' Lặp qua tất cả các sheet trong workbook
        For Each ws In wb.Worksheets
            ' Copy và paste giá trị
            ws.UsedRange.Value = ws.UsedRange.Value
        Next ws
        
        ' Lưu và đóng workbook
        wb.Close SaveChanges:=True
        
        ' Lấy tên file tiếp theo
        fileName = Dir
    Loop
End Sub
 
Upvote 0
AI được cái tổng hợp dữ liệu của người khác viết nhờ Siêu tính toán, không có khả năng suy luận và tạo thuật toán để đạt được mục tiêu tối ưu nhất. Tư duy từ bộ não của con người mới là điều nên hướng đến, AI dùng để giúp tăng tốc độ bộ não tư duy nhanh hơn.
Làm sao AI viết được đoạn mã nâng cao như bài dưới đây, để làm được việc này

 
Upvote 0
Hên xui, nhờ AI làm giúp bạn test thử =))
chú ý đổi tên file và đường dẫn thành file phải là tiếng việt không dấu.

Mã:
Sub CopyPasteValuesInFolder()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet

    ' Đường dẫn tới thư mục chứa các file
    folderPath = "C:\YourFolderPath\" ' Thay đổi đường dẫn này thành đường dẫn thư mục của bạn

    ' Lấy tên file đầu tiên trong thư mục
    fileName = Dir(folderPath & "*.xls*")

    ' Lặp qua tất cả các file trong thư mục
    Do While fileName <> ""
        ' Mở workbook
        Set wb = Workbooks.Open(folderPath & fileName)
       
        ' Lặp qua tất cả các sheet trong workbook
        For Each ws In wb.Worksheets
            ' Copy và paste giá trị
            ws.UsedRange.Value = ws.UsedRange.Value
        Next ws
       
        ' Lưu và đóng workbook
        wb.Close SaveChanges:=True
       
        ' Lấy tên file tiếp theo
        fileName = Dir
    Loop
End Sub
Tuyệt vời!
Tuy quá trình chạy nó hiện thông báo update và mình phải nhấn chọn, nhưng sau cùng, mình xem random lại các file thì thấy ok.
Cảm ơn bạn rất nhiều!
 
Upvote 0
Web KT

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

Back
Top Bottom