Xuất dữ liệu ra file Excel mới VBA

Với Excel, mất điện đột ngột, lỗi File, mặc dù trước đó bạn đã bấm lưu, nhưng khi mở ra dữ liệu vẫn có thể bị mất hoặc thậm tệ hơn là mất điện quá lâu và dữ liệu cũng không lưu.

Để giải quyết vấn đề sao lưu tự động bằng VBA, và bạn luôn tự tin File Excel luôn được lưu và được sao chép vào một thư mục lưu trữ quy định trong ổ đĩa, ở đây mình quy định Folder lưu trữ là "Backup", và nó tự động được tạo ra nếu không có sẵn trong ổ đĩa của bạn, còn nếu có sẵn nó sẽ tự biết Copy một bản dự phòng vào đó.

Trước khi file chưa được mở
Code VBA tự tạo thư mục

Chúng ta thực hiện các bước sau:

1 Mở File bạn cần lưu tự động và thực hiện như sau

Mở cửa sổ soạn thảo Code ra, Nhấn ALT+F11 hoặc Developer, bấm chọn VisualBasic hoặc Viewcode để thực hiện viết code, bạn nào chưa biết cách làm tham khảo bài "VBA Cơ Bản Bài 01"

Viet Code VBA cho Sự Kiện Open WorkBook

2 Viết code cho sự kiện WorkbookOpen, gọi Code AutoBackup

Nháy đúp vào 'ThisWorkbook', bên phải chọn sự kiện Open nhé, như hình trên, một Private Sub cho sự kiện Open sẽ tự động sinh ra, bạn chỉ cần chép đoạn code này vào

Private Sub Workbook_Open()     Application.OnTime Now + TimeValue("00:00:20"), "AutoBackup"

End Sub

3 Viết code cho Sub AutoBackup tại Module "mdAutoBackup"

Nhập đúp chuột vào Module "mdAutoBackup", và copy đoạn code sau dán vào trình soạn thảo VBA của Excel (Nhấn phím Alt + F11 trong màn hình làm việc của Excel).

Option Explicit Sub AutoBackup()     Dim FileExtStr  As String     Dim FileFormatNum As Long     Dim xWs         As Worksheet     Dim xWb         As Workbook     Dim FSO         As Object     Dim MyPath      As String          Application.ThisWorkbook.Save     MyPath = ThisWorkbook.Path & "\Backup"        '<< Duong dan thu muc Import          If Right(MyPath, 1) = "\" Then         MyPath = Left(MyPath, Len(MyPath) - 1)     End If          Set FSO = CreateObject("scripting.filesystemobject")          If FSO.FolderExists(MyPath) = FALSE Then         MsgBox "Duong dan " & MyPath & "Thu muc Backup duoc tao!", vbInformation         Dim FolderName As String         Application.ScreenUpdating = FALSE         Set xWb = Application.ThisWorkbook         FolderName = xWb.Path & "\" & "Backup"        '& DateString         MkDir FolderName         MsgBox "File cua ban se duoc luu tai " & MyPath, vbInformation         ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\Backup\" & _                                 Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & "(" & _                                 Right(Timer, 1) & ")" & Format(Date, "dd.mm.yyyy") & ".xlsm"     Else         MsgBox "File cua ban se duoc luu tai " & MyPath, vbInformation         ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\Backup\" & _                                 Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & "(" & _                                 Right(Timer, 1) & ")" & Format(Date, "dd.mm.yyyy") & ".xlsm"     End If     Application.OnTime Now + TimeValue("00:00:20"), "AutoBackup"

End Sub

Tại dòng code cuối cùng , mình đang để chế độ tự động lưu và Backup sau 20s, các bạn thay thế tùy ý nhé

4 Đóng file, và lưu về định dạng .xlsm hoặc .xls

Để File hoạt động được, bạn phải tắt và mở lên, vì chúng ta đang dùng sự kiện Workbook_Open Vậy là xong, chúng ta thử bấm đồng hồ xem có đúng cứ sau 20s nó tự lưu và sao chép một bản vào thư mục Backup không?

Bài tiếp theo tôi sẽ hướng dẫn cách viết Code VBA ADO lấy và tổng hợp dữ liệu từ một file đang đóng vào File báo cáo và Code VBA ADO Tổng hợp dữ liệu từ File đang đóng sang Một File Excel đang đóng khác

Code VBA ADo Tong hop du lieu tu file dang dong hoac tu File dang Dong nay sang File dang dong khac

Có thể các bạn quan tâm các bài viết về lập trình VBA sau

>> Lập trình VBA Từ Căn Bản Đến Nâng Cao

>> Lập Trình VBA Căn Bản Bài 01

>> Tạo Phiếu In Lương Hàng loạt

>> Tạo Form VBA Quản Lý Sheets trong Excel

Ngược lại với việc lấy dữ liệu từ 1 file khác thì chúng ta có thể xuất dữ liệu từ file gốcra fileExcel mới. Kỹ thuật này cũng thường xuyênđược sử dụng khi làm việc với dữ liệu lớn, hoặc việc phải xuất báo cáo ra 1 file riêngđể gửi cho bộ phận khác. Sauđây chúng ta cùng tìm hiểu cách thực hiện nhé:

Quy trình thực hiện

Trước tiên chúng ta cần hình dungđược những việc cần phải làm trong thao tác này:

Câu lệnh VBA mẫu

View the code on Gist.

Nâng cao

Chúc các bạn học tốt cùng HọcExcel Online!

#Xuất #dữ #liệu #file #Excel #mới

Ngược lại với việc lấy dữ liệu từ 1 file khác thì chúng ta có thể xuất dữ liệu từ file gốc ra file Excel mới. Kỹ thuật này cũng thường xuyên được sử dụng khi làm việc với dữ liệu lớn, hoặc việc phải xuất báo cáo ra 1 file riêng để gửi cho bộ phận khác. Sau đây chúng ta cùng tìm hiểu cách thực hiện nhé:

Quy trình thực hiện

Trước tiên chúng ta cần hình dung được những việc cần phải làm trong thao tác này:

  • Xác định vùng dữ liệu cần trích xuất: Sheet nào, Range nào
  • Mở Workbook mới (hoặc Workbook sẽ nhận dữ liệu trích xuất)
  • Copy > Paste vùng dữ liệu cần trích xuất vào Workbook vừa mở
  • Đóng Workbook nhận dữ liệu trích xuất lại

Câu lệnh VBA mẫu

Nâng cao

  • Việc mở / đóng workbook khác sẽ cập nhật màn hình, khiến màn hình nhấp nháy => Do đó cần áp dụng thêm lệnh đóng / mở chức năng cập nhật màn hình: Application.ScreenUpdating = True / False
  • Khi mở Workbook có sẵn cần lấy dữ liệu cần xác định rõ đường dẫn tới thư mục chứa Workbook đó + Tên file + Đuôi file cho đúng
  • Khi mở Workbook mới thì có thể thêm lệnh lưu tên cho Workbook đó khi đóng

Việc xử lý dữ liệu trên Excel đôi khi mất nhiều thời gian và công sức khi các dữ liệu có tính lặp đi lặp lại. VBA khắc phục được điểm này. Khi sử dụng VBA trong công việc, bạn có thể rút ngắn thời gian làm việc rất nhiều, có thể từ 01 ngày (nếu xử lý trên Excel) còn 01h (khi xử lý trên VBA). Ngoài ra, VBA còn giúp lập báo cáo tự động và điều khiển các chương trình khác như Word, Power Point, Outlook … giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp …

Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Thủ Thuật Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại:

Chuyên mục: Học Excel
Cảm ơn các bạn đã theo dõi Thủ Thuật trên đây là những chia sẻ của chúng tôi về Xuất dữ liệu ra file Excel mới. Hy vọng bài viết này sẽ giúp ích được cho bạn. Trân trọng !!!