Bạn đặt con trỏ vào sheet cần tạo. Bấm phải chuột -> Chọn Move or copy -> Trong ô To book chọn new book -> OKMình có 1 file excel gồm nhiều sheet. Nay muốn xuất 1 sheet thành 1 file riêng biệt, có tên là tên của sheet đó thì phải làm thế nào. Google mấy ngày rùi hok ra. Các bác giúp em với.
Bạn dùng code sau nhé:Mình có 1 file excel gồm nhiều sheet. Nay muốn xuất 1 sheet thành 1 file riêng biệt, có tên là tên của sheet đó thì phải làm thế nào. Google mấy ngày rùi hok ra. Các bác giúp em với.
Sub LuuFile()
Dim strPath As String
Dim sh As Worksheet
Application.ScreenUpdating = False
strPath = ThisWorkbook.Path
For Each sh In ThisWorkbook.Worksheets
sh.Copy
Application.Workbooks(Application.Workbooks.Count).Close _
True, strPath & "\ Ten Sheet " & sh.Name
Next
Application.ScreenUpdating = True
End Sub
Bạn chép code vào đâu, Bạn gửi file xem thử nhéKhông biết xử lý vụ này thế nào. Giống bị dính virus quá. huhu
Bạn dùng code sau nhé:
Mã:Sub LuuFile() Dim strPath As String Dim sh As Worksheet Application.ScreenUpdating = False strPath = ThisWorkbook.Path For Each sh In ThisWorkbook.Worksheets sh.Copy Application.Workbooks(Application.Workbooks.Count).Close _ True, strPath & "\ Ten Sheet " & sh.Name Next Application.ScreenUpdating = True End Sub
P/S: Nó sẽ lưu vào chung với thư mục của file gốc nhé.
Bỏ vòng lặp đi là được:Code này thì chuyển từng sheet thành từng file (workbook có bao nhiêu sheet thì thành bấy nhiêu file). Nhưng nếu chỉ muốn chuyển duy nhất 1 sheet cụ thể (ví dụ Sheet 1) thành 1 file thì phải sửa như thế nào? Cám ơn các anh chị.
Sub LuuFile()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Sheets("sheet1").Copy
ActiveWorkbook.Close True, ThisWorkbook.Path & "\Sheet1"
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Bỏ vòng lặp đi là được:
Mã:Sub LuuFile() With Application .ScreenUpdating = False .DisplayAlerts = False Sheets("sheet1").Copy ActiveWorkbook.Close True, ThisWorkbook.Path & "\Sheet1" .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Code của tác giả rất gọn và đã đáp ứng yêu cầu của chủ topic. Em xin hỏi thêm mấy câu hỏi nâng cao để học hỏi
Code trên tạo file có tên mặc định là sheet1. Xin tác giả bổ sung cách để:
+ Tên file thêm ngày tháng hiện hành (VD: BC_15.06.xls)
+ Nếu sử dụng Code 2 lần sheet sau tự động đè (overwrite)sheet trước. Cần có cảnh báo hoặc tự động thêm ký tự phụ vào tên file mới sinh
+ Code để đổi tên sheet khi sheet được chuyển sang file? mới ?
Sub LuuFile()
With Application
.ScreenUpdating = False
' .DisplayAlerts = False
Sheets("sheet1").Copy
ActiveSheet.Name = "TenSheetMoi"
ActiveWorkbook.Close True, ThisWorkbook.Path & "\BC_" & Format(Now(), "dd-mm")
' .DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Dùng code sau:
Mã:Sub LuuFile() With Application .ScreenUpdating = False ' .DisplayAlerts = False Sheets("sheet1").Copy ActiveSheet.Name = "TenSheetMoi" ActiveWorkbook.Close True, ThisWorkbook.Path & "\BC_" & Format(Now(), "dd-mm") ' .DisplayAlerts = True .ScreenUpdating = True End With End Sub
Bạn đưa File giả lập lên đây.Xin phép dùng topic cũ này để hỏi về cùng 1 chủ đề lưu sheet
Mình muốn khi chạy code hiện ra bảng chọn đường dẫn và ghi tên file giống chức năng save của MS excel, chỉ khác ở đây là lưu sheet hiện hành ra thành file riêng. (Còn chức năng save của MS excel thì lưu nguyên file excel)
Nhờ các bạn giúp.
Mình cảm ơn!
Bạn đưa File giả lập lên đây.
Không thể chọn đường dẫn vậy nhờ bạn giúp tạo 1 folder cùng đường dẫn với file chính và lấy tên folder là tên file chính (file gốc chứa nhiều sheet) sau đó lưu sheet trong folder đó.Thay vì hiện bảng chọn đường dẫn tôi sẽ lưu luôn sheet hiện hành thành 1 File vào đường dẫn chỉ định có được không?
Muốn thay đổi thì bạn cứ thay đổi thôi! Không ản h hưởng gì cả?
Của bạn đây:Không thể chọn đường dẫn vậy nhờ bạn giúp tạo 1 folder cùng đường dẫn với file chính và lấy tên folder là tên file chính (file gốc chứa nhiều sheet) sau đó lưu sheet trong folder đó.
Đối với các sheet lưu sau mà cùng nằm trong file excel chính, nếu kiểm tra có folder rồi thì ko cần tạo folder nữa mà lưu thẳng vào folder đó luôn.
Còn tên file có thay đổi được không vậy bạn?
Không biết mình yêu cầu vậy có khó quá không, mong các bạn thông cảm!
Mình cảm ơn nhiều!