Chuyển 1 sheet thành 1 file (2 người xem)

  • Thread starter Thread starter Vinix
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Vinix

Thành viên mới
Tham gia
15/3/08
Bài viết
3
Được thích
0
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.
 
Mình nhờ các cao thủ chỉ giúp: Mình có 1 file có nhiều sheet. trong mỗi sheet lại có công thức và đã định vùng cần in (tức là đã Set printer area. Mình cần tạo một đoạn code gắn với 1 nút sao cho: Nhấn nút lần 1 nó sẽ chuyển sheet hiện hành (chỉ lấy phần đã set printer area) thành 1 file mới có tên Phongthi và sheet đó có tên P1 (lưu ý: chỉ lấy giá trị chứ không lấy công thức, giữ nguyên Form). Khi nhấn nút lần 2 thì tương tự sẽ tạo thêm 1 sheet thứ 2 có tên P2 cùng trên file Phongthi đã tạo ở lần nhấn nút 1, nhấn nút lần 3, 4, 5,.... tương tự thành P3, P4, .....

Xin cảm ơn rất nhiều
Thử rồi cho mình biết kết quả nhen.
Mã:
Sub TaoFileMoi()
    Dim ws As Worksheet
    Dim newWorkbook As Workbook
    Dim newSheet As Worksheet
    Dim filePath As String
    Dim sheetName As String
    Dim sheetCounter As Integer
   
    ' Đường dẫn để lưu file mới
    filePath = ThisWorkbook.Path & "\Phongthi.xlsx"
   
    ' Kiểm tra xem file đã tồn tại hay chưa
    If Dir(filePath) = "" Then
        ' Nếu chưa tồn tại, tạo file mới
        Set newWorkbook = Workbooks.Add
        newWorkbook.SaveAs Filename:=filePath
        newWorkbook.Close SaveChanges:=True
    End If
   
    ' Mở file đã tồn tại hoặc vừa được tạo
    Workbooks.Open Filename:=filePath
    Set newWorkbook = Workbooks("Phongthi.xlsx")
   
    ' Đếm số sheet hiện có trong file Phongthi để đặt tên cho sheet mới
    sheetCounter = newWorkbook.Sheets.Count + 1
   
    ' Tạo tên sheet mới
    sheetName = "P" & sheetCounter
   
    ' Copy vùng đã set print area từ sheet hiện hành sang file mới
    Set ws = ThisWorkbook.ActiveSheet
    Set newSheet = newWorkbook.Sheets.Add(After:=newWorkbook.Sheets(newWorkbook.Sheets.Count))
    newSheet.Name = sheetName
   
    ws.Range(ws.PageSetup.PrintArea).Copy
    newSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
    newSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
   
    ' Lưu và đóng file
     newWorkbook.Close SaveChanges:=True
End Sub
 
Upvote 0
Thử rồi cho mình biết kết quả nhen.
Mã:
Sub TaoFileMoi()
    Dim ws As Worksheet
    Dim newWorkbook As Workbook
    Dim newSheet As Worksheet
    Dim filePath As String
    Dim sheetName As String
    Dim sheetCounter As Integer
 
    ' Đường dẫn để lưu file mới
    filePath = ThisWorkbook.Path & "\Phongthi.xlsx"
 
    ' Kiểm tra xem file đã tồn tại hay chưa
    If Dir(filePath) = "" Then
        ' Nếu chưa tồn tại, tạo file mới
        Set newWorkbook = Workbooks.Add
        newWorkbook.SaveAs Filename:=filePath
        newWorkbook.Close SaveChanges:=True
    End If
 
    ' Mở file đã tồn tại hoặc vừa được tạo
    Workbooks.Open Filename:=filePath
    Set newWorkbook = Workbooks("Phongthi.xlsx")
 
    ' Đếm số sheet hiện có trong file Phongthi để đặt tên cho sheet mới
    sheetCounter = newWorkbook.Sheets.Count + 1
 
    ' Tạo tên sheet mới
    sheetName = "P" & sheetCounter
 
    ' Copy vùng đã set print area từ sheet hiện hành sang file mới
    Set ws = ThisWorkbook.ActiveSheet
    Set newSheet = newWorkbook.Sheets.Add(After:=newWorkbook.Sheets(newWorkbook.Sheets.Count))
    newSheet.Name = sheetName
 
    ws.Range(ws.PageSetup.PrintArea).Copy
    newSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
    newSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
 
    ' Lưu và đóng file
     newWorkbook.Close SaveChanges:=True
End Sub
Nó chỉ tạo ra được một file có tên là Phongthi, trong file đó chỉ có 2 sheet có tên: sheet1 và P2. Các sheet này đều trống rỗng. Khi chạy lần 2 thì nó hỏi có thay thế file đã tạo ở lần 1 hay không? Nếu chọn OK thì nó thay luôn và ile tạo ra vẫn là Phongthi và vẫn có 2 sheet: Sheet1 và P2, Các sheet này vẫn trống rỗng như lần 1. Bạn có thể giúp mình xem lại được không?
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nó chỉ tạo ra được một file có tên là Phongthi, trong file đó chỉ có 2 sheet có tên: sheet1 và P2. Các sheet này đều trống rỗng. Khi chạy lần 2 thì nó hỏi có thay thế file đã tạo ở lần 1 hay không? Nếu chọn OK thì nó thay luôn và ile tạo ra vẫn là Phongthi và vẫn có 2 sheet: Sheet1 và P2, Các sheet này vẫn trống rỗng như lần 1. Bạn có thể giúp mình xem lại được không?
Bạn nên đọc kỹ yêu cầu bài #60 nhen.
 
Upvote 0
Web KT

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

Back
Top Bottom