VBA Tạo nhiều File excel từ danh sách cho trước

Liên hệ QC

ahungnv1992

Thành viên mới
Tham gia
25/6/20
Bài viết
12
Được thích
0
Em xin gửi lời chào đến các Thầy ,các Anh Chị trong diễn đàn.
Mong các Thầy , các anh chị giúp đỡ em code tạo hàng loạt File Excel từ list danh dách cho trước.
Theo quy luật:
Tên file excel có tên : Machine-Model-Lot -Date.
Ex :
Hàng 2 : Jenny-AP-0-340-0032-010722
1657609729243.png
và chèn nội dung file excel "tieu chuan" vào tất cả các file excel được tạo ở trên.
Em xin cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:
Sao chép tập tin tieu chuan.xlsx thành nhiều bản rồi đổi tên tập tin theo danh sách kia là xong. Không liên quan gì Excel.
 
Sao chép tập tin tieu chuan.xlsx thành nhiều bản rồi đổi tên tập tin theo danh sách kia là xong. Không liên quan gì Excel.
Vấn đề là 1 ngày em làm việc với khoảng 300-400 file ạ.Số lượng quá nhiều nên nếu copy tay rất mất thời gian và hay bị nhầm lẫn ạ.
 
File mới tạo ra vốn trống trơn. Nếu "chèn nội dung" file nào đó thì có nghĩa là copy file ấy thôi.

tieuchuan = đường dẫn file tiêu chuẩn
desFolder = folder để chứa các files tạo ra
Set tgRng = [A1].CurrentRegion.Resize( , 4)
For dong = 2 To tgRng.Rows.Count
FileCopy tieuchuan, desFolder _
& Join(Application.Transpose(Application.Transpose(tgRng.Offset(dong - 1).Resize(1))), "-") & ".xlsx"
Next dong

Làm việc một ngày vài trăm files mà bó buộc tư duy của mình trong VBA là quá thiển cận.
Chơi với số lượng files lớn thì lo đi học PowerShell để mà tiến thân.
Mai sau xin việc khác, trả lời:
Hằng ngày tôi dùng ??? để quản lý hằng 200-300 files. Cái chỗ ??? thằng nào trả lời VBA thì tôi chấm rớt : kinh nghiệm thì nhiều nhưng tư duy hạn hẹp.
 
File mới tạo ra vốn trống trơn. Nếu "chèn nội dung" file nào đó thì có nghĩa là copy file ấy thôi.

tieuchuan = đường dẫn file tiêu chuẩn
desFolder = folder để chứa các files tạo ra
Set tgRng = [A1].CurrentRegion.Resize( , 4)
For dong = 2 To tgRng.Rows.Count
FileCopy tieuchuan, desFolder _
& Join(Application.Transpose(Application.Transpose(tgRng.Offset(dong - 1).Resize(1))), "-") & ".xlsx"
Next dong

Làm việc một ngày vài trăm files mà bó buộc tư duy của mình trong VBA là quá thiển cận.
Chơi với số lượng files lớn thì lo đi học PowerShell để mà tiến thân.
Mai sau xin việc khác, trả lời:
Hằng ngày tôi dùng ??? để quản lý hằng 200-300 files. Cái chỗ ??? thằng nào trả lời VBA thì tôi chấm rớt : kinh nghiệm thì nhiều nhưng tư duy hạn hẹp.
Vâng Thầy.Nhưng đặc thù công ty nơi em làm việc là doanh nghiệp Hàn quốc họ chỉ sử dụng Excel là chính ạ.Muốn dùng thêm thứ khác lại không được hỗ trợ ạ.Nhiều khi loanh quanh luẩn quẩn ,có khi mình có thể làm nhanh nhưng dụng cụ trong tay hạn chế nên rất khó khăn ạ.Em cảm ơn Thầy đã chia sẻ code ạ!
 
9 người 10 ý. Nếu công việc này là của tôi, tôi sẽ copy sheet tiêu chuẩn trong file "tieu chuan" dán trong file " list danh dách".

Tạo file mới bằng cách copy sheet này và đặt tên theo từng dòng trong list.

.
 
Chính do cái vụ "9 người 10 ý" mà thằng chủ nó tránh không cho ý nào ngoài ý của nó hết. Có những lúc quản lý phải đứng ra thống nhất tiêu chuẩn, dẫu có nhiều người khác cho rằng không phù hợp.

Kỹ năng chính của người kỹ thuật là thuyết phục ban quản lý rằng mình có đủ tự tin trong việc áp dụng kỹ thuật, và đủ khách quan trong việc trình bày. Từ "khách quan" là chủ chốt vấn đề.
 
Chính do cái vụ "9 người 10 ý" mà thằng chủ nó tránh không cho ý nào ngoài ý của nó hết. Có những lúc quản lý phải đứng ra thống nhất tiêu chuẩn, dẫu có nhiều người khác cho rằng không phù hợp.

Kỹ năng chính của người kỹ thuật là thuyết phục ban quản lý rằng mình có đủ tự tin trong việc áp dụng kỹ thuật, và đủ khách quan trong việc trình bày. Từ "khách quan" là chủ chốt vấn đề.
Em thấy thêm nữa là khi chủ nó hỏi áp dụng kỹ thuật như vậy nhanh như thế nào thì có thể trình bày được, nhưng nếu nó bảo làm thế nào để được như vậy thì lại bảo để em đi hỏi, đi nhờ GPE là nó gạt ngay vì không chủ động được.
 
Lần chỉnh sửa cuối:
Bài này này làm bằng đường dẫn rất khó sử dụng, bạn nên làm bằng sự kiện get open filename.
Code này dùng được cho tất cả các file Excel, PDF, Word....

Sub select_template()
Sheet1.Range("A1") = Application.GetOpenFilename()
End Sub

Sub select_destination_folder()
Dim dialog As FileDialog
Set dialog = Application.FileDialog(msoFileDialogFolderPicker)
dialog.AllowMultiSelect = False
dialog.Show
Sheet1.Range("A2") = dialog.SelectedItems(1)
End Sub

Sub file_copy()
Dim template As String
Dim dest_folder As String
Dim cn As Range
Dim ext As String
template = Sheet1.Range("A1").Value
dest_folder = Sheet1.Range("A2").Value
ext = Split(template, ".")(UBound(Split(template, ".")))
For Each cn In Sheet1.Range("B2:B1000")
FileCopy template, dest_folder & "\" & cn.Value & "." & ext
Next cn
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom