làm thế nào để lưu bảng biểu thành nhiều file exxcel mới theo điều kiện trong bảng (1 người xem)

Liên hệ QC

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

luongsonlong211

Thành viên mới
Tham gia
16/9/16
Bài viết
26
Được thích
4
mình có một bảng biểu (file đính kèm), mình muốn hỏi các bác GPE có code VBA nào lưu từng nhóm trên biểu đó thành từng file mới với tên file là tên nhóm, trong biểu là ở cột A, VD: nhóm 17 được tự động tách ra và lưu vào 1 file 17 mới.! rất mong được giúp đỡ. thank!
 

File đính kèm

mình có một bảng biểu (file đính kèm), mình muốn hỏi các bác GPE có code VBA nào lưu từng nhóm trên biểu đó thành từng file mới với tên file là tên nhóm, trong biểu là ở cột A, VD: nhóm 17 được tự động tách ra và lưu vào 1 file 17 mới.! rất mong được giúp đỡ. thank!

Đáp án ở đây:
http://www.giaiphapexcel.com/forum/...bảng-thành-nhiều-file-mới&p=752564#post752564
 
Upvote 0
mình có một bảng biểu (file đính kèm), mình muốn hỏi các bác GPE có code VBA nào lưu từng nhóm trên biểu đó thành từng file mới với tên file là tên nhóm, trong biểu là ở cột A, VD: nhóm 17 được tự động tách ra và lưu vào 1 file 17 mới.! rất mong được giúp đỡ. thank!
Mình tách được nhóm ra nhưng hơi dài dòng 1 tý. Bạn xem thử sao. Chờ các anh chị khác giúp bạn Code tối ưu hơn nha
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
bạn có thể giải thích cho mình đoạn code này được không bạn, mình đang tập VBA, rất cảm ơn bạn ạ
Sub DS()


Dim erow As Long


Sheet1.Range("R1:R65000").ClearContents
Sheet1.Range("A2:A65000").Copy
Range("R1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


Application.CutCopyMode = False


erow = Sheet1.[R6500].End(3).Row
ActiveSheet.Range("$R$1:$R$" & erow).RemoveDuplicates Columns:=1, Header:=xlNo


End Sub


Public Sub LOC()


Dim sArr(), dArr(), i As Long, J As Long, K As Long
Dim NHOM


On Error Resume Next


With Sheet1
sArr = .Range(.[A2], .[A65536].End(xlUp)).Resize(, 5).Value2
End With


ReDim dArr(1 To UBound(sArr, 1), 1 To 11)


With Sheet2
NHOM = Sheet1.Range("Q1")


For i = 1 To UBound(sArr, 1)


If sArr(i, 1) = NHOM Then
K = K + 1


For J = 1 To 5
dArr(K, J) = sArr(i, J)
Next J


End If


Next i


.Range("A2:E65000").Borders.LineStyle = xlNone
.Range("A2:E65000").ClearContents
.Range("A2").Resize(K, 5) = dArr
.Range("A2").Resize(K, 5).Borders.LineStyle = xlContinuous
End With


End Sub


Sub tach()


Dim i As Long


Application.ScreenUpdating = False


Call DS


With Sheet1


For i = 1 To Sheet1.Range("R65000").End(3).Row
Sheet1.Range("Q1") = Sheet1.Range("R" & i)


Call LOC


Sheet2.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "" & .Cells(1, 17)
ActiveWorkbook.Close
Next i


.Range("Q1:R65000").ClearContents
End With


Application.ScreenUpdating = True


End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom