Không phải lúc nào bạn cũng cần phải tự mình phát minh ra mọi thứ khi bạn có thể sử dụng thứ đã tồn tại.

Bạn có quyền truy cập vào hầu hết các hộp thoại dựng sẵn trong Excel và các ứng dụng khác trong Office.

Nếu bạn muốn cho phép người dùng quyết định nơi lưu sổ làm việc, bạn có thể hiển thị hộp thoại tích hợp Lưu như sau:

Application.Dialogs(xlDialogSaveAs).Show

Để có được danh sách trên tất cả các hộp thoại có thể truy cập trong Excel, hãy sử dụng trình duyệt Đối tượng.

Để hiển thị nó, hãy nhấn F2 trong khi bạn đã kích hoạt một mô-đun. Chọn Excel làm thư viện và tìm các hằng số bắt đầu bằng xlDialog …​.

Nếu bạn chỉ muốn truy xuất tên tệp từ người dùng mà bạn muốn sử dụng sau này để mở hoặc lưu sổ làm việc, bạn có thể sử dụng phương thức GetOpenFilename hoặc GetSaveAsFilename. Cả hai phương pháp đều hiển thị các hộp thoại tương ứng của chúng, nhưng không mở hoặc lưu tệp khi người dùng xác nhận hộp thoại.

Thay vào đó, các phương thức trả về tên tệp hoàn chỉnh cho tệp mà người dùng muốn mở hoặc lưu.

FullFileName = Application.GetOpenFilename("Excel files (.xl),.xl", _

1, "Custom Dialog Title", , False)

FullFileName = Application.GetSaveAsFilename("DefaultFilename.xls", _

"Excel files (.xl),.xl", 1, "Custom Dialog Title")

Kết quả có thể được sử dụng theo bất kỳ cách nào bạn muốn. Sau đó, bạn có thể mở một sổ làm việc đã chọn như sau:

Workbooks.Open FullFileName

Hoặc bạn có thể lưu một sổ làm việc như sau:

ActiveWorkbook.SaveAs FullFileName

Khi người dùng đã xác nhận hộp thoại FileOpen hoặc hộp thoại FileSaveAs, họ cũng có thể đã thay đổi thư mục đang hoạt động hoặc hiện tại, vì vậy tôi thường sử dụng hai phương pháp này như một cách tiếp cận đơn giản để cho phép người dùng chọn một thư mục. Bạn có thể tìm một cách khác để cho phép người dùng chọn một thư mục trong phần Tệp và thư mục.