Nếu công việc của bạn đòi hỏi phải thường xuyên sử dụng Excel với các thao tác lặp đi lặp lại thì Macro VBA sẽ là một trợ thủ đắc lực giúp bạn có thể đưa ra các báo cáo một cách nhanh chóng và chính xác. Bài viết sau đây sẽ giúp các bạn làm quen với những thao tác đơn giản nhất trong Excel như open workbook, close workbook và save workbook bằng Macro VBA.
- Open a workbook:
Trên tab Developer, các bạn click chọn Macro, đặt tên cho Macro là Open_file và nhấn Create để hiện ra cửa sổ Microsoft Visual Basic for Application (VBA).
Trên cửa sổ tương tác của VBA, các bạn có thể sử dụng 1 trong những code sau để mở 1 workbook có sẵn. (Ở đây mình đang sử dụng code để mở file có tên là “macro” nằm trên desktop theo đường dẫn: “C:UsersHanh NguyenDesktopmacro.xlsx”.)
- Cách 1:
Sub Open_file()
Workbooks.Open “C:UsersHanh NguyenDesktoptest macro.xlsx”
End Sub
- Cách 2:
Sub Open_file()
Workbooks.Open Filename:=”C:UsersHanh NguyenDesktoptest macro.xlsx”
End Sub
- Cách 3: đặt đường dẫn file cần mở tại 1 ô bất kỳ (trong bài mình đặt đường dẫn vào ô C4, sheet1)
Gõ code sau trên cửa sổ VBA:
Sub Open_file()
Dim Filepath As String
Filepath = Sheets(“Sheet1”).Range(“C4”).Value
Workbooks.Open Filename:=Filepath
End Sub
2. Close a workbook:
Tương tự như đối với open workbook, để close 1 workbook các bạn có thể sử dụng code dưới đây trên cửa sổ tương tác của VBA:
Sub Close_file()
‘
‘ Close_file Macro
‘
‘
Windows(“macro.xlsx”).Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
3. Save a workbook:
Excel đã cung cấp một biện pháp hữu hiệu để chúng ta có thể sử dụng Macro VBA ngay cả khi chưa biết về các lệnh của VBA, đó chính là công cụ Record Macro. Chúng ta chỉ cần thực hiện quá trình xử lý trên Excel và Excel sẽ tự động sinh ra những dòng code trên cửa sổ tương tác của VBA.
Để record công việc lưu một file mới, chúng ta cần thực hiện các bước sau :
- Bước 1 : Trên tab Developer chọn Record Macro, sau đó đặt tên cho Macro và nhấn OK để tạo macro mới.
- Bước 2 : Thực hiện công việc tạo ra file mới, đặt tên cho file và lưu file như thông thường.
- Bước 3 : Sau khi đã save file mới, nhấn Stop Recording trên tab Developer để dừng việc ghi code macro. Kiểm tra trên cửa sổ của Macro VBA chúng ta thấy code đã được sinh ra ngay lập tức như sau :
Sub Save_file()
‘
‘ Save_file Macro
‘
‘
Workbooks.Add
ActiveWorkbook.SaveAs Filename:= _
“C:UsersHanh NguyenDesktopsave_file_macro.xlsx”
, FileFormat:= _xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub
Như vậy chỉ với một vài bước đơn giản, chúng ta đã có được đoạn code VBA để save một workbook. Tuy nhiên để có thể ứng dụng code save file này để tạo ra các báo cáo định kỳ, chúng ta có thể truyền giá trị của filename, filepath vào code như sau:
Sub Save_file()
‘
‘ Save_file Macro
‘
‘
Dim File_new As Workbook
Dim File_path As String
File_path = Sheets(“Sheet1”).Range(“C4”).Value
Set File_new = Workbooks.Add
File_new.SaveAs Filename:=File_path, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub
Như vậy, các bạn đã thành công trong việc tạo ra Macro VBA ứng dụng để open, close hay save một file Excel.
Comments ( 4 )
mình thử gán dim str as string
str = range(“a1”).value
sau đó dùng lệnh mở workbooks.open(“duongdanvidu_&str.xlsm) nhưng máy báo lỗi. xin bạn chỉ mình cách khắc phục cảm ơn bạn rất nhiều.
mình cũng mới tập tành học vba nên có gì không đúng mong bạn bỏ qua cho.