2017-03-13 14 views
5

Dưới đây là mã để hợp nhất nhiều sổ làm việc vào một sổ làm việc. Tuy nhiên, nó yêu cầu lưu từng tệp đang được chuyển.Cần sửa mã để hợp nhất sổ làm việc trong một sổ làm việc - Loại bỏ Lưu Promt

Tôi cần dữ liệu được truyền mà không bị gián đoạn để lưu tệp.

Trợ giúp của bạn được đánh giá cao.

Sub Merger() 
Dim bookList As Workbook 
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object 
Application.ScreenUpdating = False 
Set mergeObj = CreateObject("C:\Users\Vincent\Desktop\856") 

Set dirObj = mergeObj.Getfolder("D:\change\to\excel\files\path\here") 

Set filesObj = dirObj.Files 
For Each everyObj In filesObj 
Set bookList = Workbooks.Open(everyObj) 

Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy 

ThisWorkbook.Worksheets(1).Activate 

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial 

Application.CutCopyMode = False 
bookList.Close 
Next 
End Sub 
+0

Application.DisplayAlerts nên giúp - https://msdn.microsoft.com/en-us/library/office/ff839782.aspx – 0m3r

+3

đây là giải pháp tốt nhất: 'SaveChanges bookList.Close: = False '. Xem [Sự kiện đóng sổ làm việc] (https://msdn.microsoft.com/en-us/library/office/ff838613.aspx). Điều này buộc sổ làm việc phải đóng mà không lưu thay đổi. Không có lời nhắc nào sẽ xuất hiện. –

Trả lời

3

Có lẽ bạn nên xem xét tắt thông báo hiển thị để ngăn thông báo xuất hiện.

Bạn có thể làm điều này bằng cách tắt sử dụng ...
Application.DisplayAlerts = False

và trở lại về việc sử dụng ...
Application.DisplayAlerts = True.

+1

trong khi kỹ thuật chính xác, tôi cảm thấy như 'bookList.Close SaveChanges: = False' là dễ dàng hơn nhiều để thực hiện và ít của một hack kể từ khi đối số được xây dựng vào chính phương thức :) –

+0

Cảm ơn bạn rất nhiều. Điều đó đã làm việc – Vincent

+0

Vâng, thực sự. Đó cũng là một điểm rất tốt Scott. – Brad

0

Cá nhân, tôi nghĩ AddIn từ liên kết dưới đây dễ làm việc hơn và xử lý tất cả các loại kịch bản, vì vậy tôi làm theo những gì bạn mô tả ở đây, cũng như nhiều thứ khác.

https://www.rondebruin.nl/win/addins/rdbmerge.htm

Các vấn đề liên quan