Giúp mình code VBA xuất tất cả các sheets after sheet chính ra file mới

Liên hệ QC

hoang0569

Thành viên thường trực
Tham gia
21/7/09
Bài viết
316
Được thích
8
Mình đưa File VD, các bạn xem giúp mình nhé, cảm ơn nhiều.
 

File đính kèm

  • NEW.xlsx
    10 KB · Đọc: 11
Mình đưa File VD, các bạn xem giúp mình nhé, cảm ơn nhiều.
File moi se duoc luu trong thu muc document. Dang su dung dien thoai nen khong viet duoc tieng viet, thong cam nhe
Mã:
Sub Export_Sheet()
Dim sh As Worksheet, NewFileName As String
For Each sh In ThisWorkbook.Worksheets
    If sh.Name <> "DATA" Then
        NewFileName = sh.Name
        sh.Copy
        With ActiveWorkbook
            .SaveAs NewFileName, 51
            .Close True
        End With
    End If
Next
End Sub
 
Upvote 0
Mình đưa File VD, các bạn xem giúp mình nhé, cảm ơn nhiều.
Góp ý cho bạn:
1/ Không nên đưa File trống không như thế, mà nên có 1 sheet chứa dữ liệu.
2/ Dựa vào nội dung của một cột nào đó (ví dụ cột B) rồi tách sheet, sau đó tách mỗi sheet là một File.
3/ Nếu muốn nhanh, gọn hơn thì dựa vào nội dung của cột B tách mỗi nội dung là một File Excel.

A_GY.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh đã giúp và góp ý, nhưng ý của em là chỉ xuất những sheet bên phải sheet "DATA" cùng vào 1 File, như VD trên sau khi xuất, File mới gồm 3 sheet B,A,N chứ không phải ra 3 file riêng biệt ah
 
Upvote 0
Copy nguyên file ra file mới. Delete những sheets trước sheet "DATA"
Đại khái:
svDisplayAlerts = Application.DisplayAlerts
Application.DisplayAlerts = False
For i = 1 To WorkSheets.Count
If WorkSheets(i).Name = "DATA" Then Exit For
WorkSheets(i).Delete
Next i
Application.DisplayAlerts = svDisplayAlerts

Ý chết, nhầm rồi. Xoá thì phải đi ngược chứ.
giu = 0
For i = WorkSheets.Count To 1 Step -1
If WorkSheets(i).Name = "DATA" Then giu = i
If i < giu Then WorkSheets(i).Delete
Next i
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom