VBA Mở / Đóng Sổ làm việc

Trong hướng dẫn này, bạn sẽ học cách sử dụng VBA để mở và đóng Sổ làm việc Excel theo một số cách.

VBA cho phép bạn mở hoặc đóng tệp bằng các phương pháp tiêu chuẩn .Mở ra.Gần.

Nếu bạn muốn tìm hiểu cách kiểm tra xem tệp có tồn tại hay không trước khi cố gắng mở tệp, bạn có thể nhấp vào liên kết này: Tệp VBA Tồn tại

Mở Workbook trong VBA

Mở sổ làm việc từ đường dẫn

Nếu bạn biết mình muốn mở tệp nào, bạn có thể chỉ định tên đường dẫn đầy đủ của nó trong hàm. Đây là mã:

1 Workbooks.Mở "Thư mục C: \ VBA \ Tệp mẫu 1.xlsx"

Dòng mã này mở tệp “Tệp mẫu 1” từ “Thư mục VBA”.

Mở Workbook - ActiveWorkbook

Khi bạn mở một sổ làm việc, nó sẽ tự động trở thành ActiveWorkbook. Bạn có thể tham khảo sổ làm việc mới mở như sau:

1 ActiveWorkbook.Save

Khi bạn tham chiếu một trang tính hoặc phạm vi và bỏ qua tên sổ làm việc, VBA sẽ cho rằng bạn đang tham chiếu đến ActiveWorkbook:

1 Trang tính ("Trang tính1"). Name = "Đầu vào"

Mở Workbook và gán cho một biến

Bạn cũng có thể mở một sổ làm việc và gán nó trực tiếp cho một biến đối tượng. Quy trình này sẽ mở một sổ làm việc đến wb biến và sau đó lưu sổ làm việc.

123456 Sub OpenWorkbookToVariable ()Dim wb As WorkbookĐặt wb = Workbooks.Open ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx")wb.SaveKết thúc Sub

Gán sổ làm việc cho các biến khi chúng mở là cách tốt nhất để theo dõi sổ làm việc của bạn

Hộp thoại Mở Tệp Workbook

Bạn cũng có thể kích hoạt hộp thoại Mở Tệp sổ làm việc. Điều này cho phép người dùng điều hướng đến một tệp và mở nó:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)Kết thúc Sub

Như bạn có thể thấy trong Hình 1, với cách tiếp cận này, người dùng có thể chọn tệp nào để mở. Hộp thoại Mở Tệp có thể được tùy chỉnh nhiều. Bạn có thể đặt mặc định cho một thư mục nhất định, chọn loại tệp nào được hiển thị (ví dụ: chỉ dành cho xlsx) và hơn thế nữa. Đọc hướng dẫn của chúng tôi về Hộp thoại Mở Tệp để biết các ví dụ chi tiết.

Mở Sổ làm việc Mới

Dòng mã này sẽ mở một sổ làm việc mới:

1 Workbooks.Add

Mở sổ làm việc mới thành biến

Thủ tục này sẽ mở một sổ làm việc mới, gán nó cho biến wb:

1234 Sub OpenNewWorkbook ()Dim wb As WorkbookĐặt wb = Workbooks.AddKết thúc Sub

Mở Cú pháp Sổ làm việc

Khi bạn sử dụng Workbooks.Open, bạn có thể nhận thấy rằng có nhiều tùy chọn có sẵn khi mở sổ làm việc:

Tên tệp là bắt buộc. Tất cả các đối số khác là tùy chọn - và bạn có thể sẽ không cần biết hầu hết các đối số khác. Đây là hai cách phổ biến nhất:

Mở Workbook Chỉ đọc

Khi sổ làm việc được mở ở chế độ chỉ đọc, bạn không thể lưu qua tệp gốc. Điều này ngăn không cho người dùng chỉnh sửa tệp.

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",, True

Mở Sổ làm việc được Bảo vệ bằng Mật khẩu

Sổ làm việc có thể được bảo vệ bằng mật khẩu. Sử dụng mã này để mở sổ làm việc được bảo vệ bằng mật khẩu:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",,, "password"

Mở Ghi chú Cú pháp Sổ làm việc

Lưu ý rằng trong hình trên, chúng tôi đã bao gồm một dấu ngoặc đơn “(” để hiển thị cú pháp. Nếu bạn sử dụng dấu ngoặc đơn khi làm việc với Workbooks. Open, bạn phải gán sổ làm việc cho một biến:

1234 Sub OpenWB ()Dim wb As WorkbookĐặt wb = Workbooks.Open ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx", Đúng, Đúng)Kết thúc Sub

Đóng Workbook trong VBA

Đóng sổ làm việc cụ thể

Tương tự như để mở một sổ làm việc, có một số cách để đóng một tệp. Nếu bạn biết mình muốn đóng tệp nào, bạn có thể sử dụng mã sau:

1 Workbooks.Close ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx")

Dòng mã này sẽ đóng tệp “Tệp mẫu 1” nếu nó được mở. Nếu không, nó sẽ trả về một lỗi, vì vậy bạn nên quan tâm đến việc xử lý lỗi.

Đóng Sổ làm việc Hoạt động

Nếu bạn muốn đóng Sổ làm việc hiện đang hoạt động, dòng mã này sẽ cho phép bạn làm điều đó:

1 ActiveWorkbook.Close

Đóng tất cả các sổ làm việc đang mở

Để đóng tất cả các Sổ làm việc đang mở, bạn chỉ cần sử dụng mã này:

1 Sổ làm việc.

Đóng sổ làm việc đã mở đầu tiên

Thao tác này sẽ đóng sổ làm việc được mở / tạo đầu tiên:

1 Sách bài tập (1). Đóng

Thay thế 1 bằng 2 để đóng sổ làm việc đã mở / đã tạo thứ hai, v.v.

Đóng mà không lưu

Thao tác này sẽ đóng Sổ làm việc mà không lưu và không hiển thị lời nhắc lưu:

1 ActiveWorkbook.C Close savechanges: = False

Lưu và đóng mà không cần nhắc

Tương tự, điều này sẽ lưu và đóng Sổ làm việc mà không hiển thị lời nhắc lưu:

1 ActiveWorkbook.C Close savechanges: = True

Lưu ý: Có một số cách khác để cho biết có nên lưu hay không lưu Sổ làm việc và cũng có thể hiển thị lời nhắc hay không. Điều này được thảo luận chi tiết hơn ở đây.

Các ví dụ mở sổ làm việc khác

Mở nhiều sổ làm việc mới

Thủ tục này sẽ mở nhiều sổ làm việc mới, gán các sổ làm việc mới vào một mảng:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Dưới dạng sổ làm việcDim i As IntegerĐối với i = 1 đến 3Đặt arrWb (i) = Workbooks.AddTiếp theo tôiKết thúc Sub

Mở tất cả sổ làm việc Excel trong một thư mục

Quy trình này sẽ mở tất cả Sổ làm việc Excel trong một thư mục, sử dụng bộ chọn Hộp thoại Mở Tệp.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb As WorkbookLàm mờ dlgFD dưới dạng FileDialogDim strFolder As StringDim strFileName thành chuỗiĐặt dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Nếu dlgFD.Show = -1 ThìstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "* .xls *")Thực hiện trong khi strFileName ""Đặt wb = Workbooks.Open (strFolder & strFileName)strFileName = DirVòngKết thúc nếuKết thúc Sub

Kiểm tra xem Sổ làm việc có đang Mở không

Quy trình này sẽ kiểm tra xem sổ làm việc có đang mở hay không:

1234567891011 Sub TestByWorkbookName ()Dim wb As WorkbookĐối với mỗi wb trong sổ làm việcNếu wb.Name = "Microsoft Excel Worksheet.xls mới" thìMsgBox "Đã tìm thấy"Thoát mã cuộc gọi Sub 'ở đây, chúng tôi sẽ thoát ngay bây giờKết thúc nếuKế tiếpKết thúc Sub

Workbook_Open Event

Sự kiện VBA là “trình kích hoạt” yêu cầu VBA chạy một số mã nhất định. Bạn có thể thiết lập các sự kiện sổ làm việc để mở, đóng, trước khi lưu, sau khi lưu và hơn thế nữa.

Đọc hướng dẫn Workbook_Open Event của chúng tôi để tìm hiểu thêm về cách tự động chạy macro khi một sổ làm việc được mở.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave