VBA FileDialog | Làm thế nào để mở hộp FilesDialog bằng mã VBA?

Excel VBA FileDialog

Trong VBA fieldialog là một thuộc tính được sử dụng để đại diện cho các trường hợp khác nhau, trong tệp tin có bốn loại hằng số khác nhau được gọi là msofiledialogfilepicker được sử dụng để chọn một tệp từ một đường dẫn nhất định, một thuộc tính thứ hai là msofiledialogfolderpicker mà tên gợi ý được sử dụng để chọn một thư mục và thứ ba là msofiledialog mở để mở một tệp và cuối cùng là msofiledialogsaveas được sử dụng để lưu tệp dưới dạng tệp mới.

Có một số trường hợp chúng tôi muốn dữ liệu từ bất kỳ tệp nào khác hoặc bất kỳ trang tính nào khác và vì VBA được sử dụng để tự động hóa công việc của chúng tôi, chúng tôi có thể mở các tệp khác bằng VBA và nó được thực hiện bằng cách sử dụng Filedialog, phần thú vị của việc sử dụng này là chúng tôi không cần cung cấp đường dẫn đến mã thay vào đó chúng tôi yêu cầu người dùng duyệt tệp.

Là một phần của dự án VBA, chúng tôi có thể yêu cầu mở các sổ làm việc khác và thực hiện một số loại tác vụ với chúng. Trong một trong những bài viết trước đó của chúng tôi “VBA Workbook.Open”, chúng tôi đã chỉ ra cách mở tệp với đường dẫn được chỉ định và tệp cụ thể. Ở đó, chúng tôi cần cung cấp đường dẫn thư mục và tên tệp cùng với phần mở rộng của nó. Nhưng điều gì sẽ xảy ra nếu mỗi lần người dùng phải chọn các tệp khác nhau từ các thư mục khác nhau. Đây là nơi tùy chọn "FileDialog" xuất hiện trong hình.

Tùy chọn VBA FileDialog hoạt động như thế nào?

“Nếu bạn không biết đường dẫn chính xác, FileDialog sẽ tìm và chọn tệp cho bạn”. Thay vì đề cập đến địa chỉ đường dẫn và tên tệp, chúng ta có thể hiển thị riêng một cửa sổ hộp thoại mở tệp để chọn tệp từ bất kỳ thư mục nào của máy tính.

Bạn có thể tải xuống Mẫu VBA FileDialog Excel này tại đây - Mẫu VBA FileDialog Excel

“FileDialog” là một đối tượng trong VBA. Để sử dụng tùy chọn này, trước tiên chúng ta cần xác định biến là FileDialog.

Khi biến được khai báo là “FileDialog” thì nó là một biến đối tượng. Để bắt đầu sử dụng, chúng ta cần thiết lập đối tượng bằng cách sử dụng Application.FileDialog.

Như chúng ta có thể thấy trong hình trên, FileDialog có bốn tùy chọn với nó.

  • msoFileDialogFilePicker: Tùy chọn này mở cửa sổ bộ chọn tệp trước mặt người dùng để chọn tệp mong muốn theo ý muốn của họ.
  • msoFileDialogFolderPicker: Tùy chọn này mở hộp thoại hoặc cửa sổ trước mặt người dùng để chọn Thư mục.
  • msoFileDialogOpen: Điều này sẽ cho phép người dùng mở tệp đã chọn từ thư mục.
  • msoFileDialogSaveAs: Điều này sẽ cho phép người dùng lưu tệp dưới dạng một bản sao khác.

Hiện tại, tôi đã chọn tùy chọn msoFileDialogFilePicker.

Bây giờ chúng ta cần thiết kế hộp thoại xuất hiện trước mặt chúng ta.

Sử dụng With Statement, chúng ta có thể thiết kế hộp thoại.

Bên trong câu lệnh with, hãy đặt một dấu chấm để xem danh sách IntelliSense về các thuộc tính và phương thức của tùy chọn FileDialog.

Để chỉ xem các tệp excel khi hộp thoại tệp mở ra, trước tiên chúng ta cần loại bỏ bất kỳ bộ lọc nào được áp dụng.

Bây giờ chúng ta cần áp dụng một bộ lọc mới là “Tệp Excel” với phần mở rộng là ký tự đại diện của tệp excel.

Bây giờ chúng ta hãy thay đổi tiêu đề của hộp thoại tệp.

Chúng tôi có thể cho phép người dùng chỉ chọn một tệp tại một thời điểm hoặc chúng tôi cũng có thể cho phép họ chọn nhiều tệp. Đối với điều này, chúng tôi cần sử dụng "Cho phép nhiều lựa chọn".

Chúng tôi có hai lựa chọn ở đây. Nếu TRUE được chọn, nó sẽ cho phép người dùng chọn nhiều tệp nếu đó là FALSE, người dùng chỉ có thể chọn một tệp tại một thời điểm.

Một điều khác mà chúng ta có thể thiết kế với FileDialog là chúng ta có thể thực sự nhấn mạnh vào những gì nên là thư mục mặc định khi hộp thoại tệp xuất hiện. Đối với việc sử dụng này Tên tệp ban đầu.

Đối với điều này, chúng ta cần đề cập đến thư mục mặc định được mở đường dẫn địa chỉ.

Bây giờ cuối cùng chúng ta cần áp dụng phương thức "Show" để xem hộp thoại tệp.

Mã:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Đặt Myfile = Application.FileDialog (msoFileDialogFilePicker) Với Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Chọn tệp Excel của bạn !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files" .Hiển thị kết thúc với kết thúc phụ

Bây giờ hãy chạy mã VBA để xem kết quả.

Như chúng ta có thể thấy trong hộp thoại tệp hình ảnh ở trên đã mở thư mục được đề cập theo mặc định.

Bây giờ chúng ta có thể chọn bất kỳ thư mục con nào và chọn các tệp excel.

Nhìn vào hình ảnh trên vì chúng tôi đã áp dụng tham số bộ lọc chỉ là “Tệp Excel”.

Thao tác này sẽ chỉ chọn tệp từ thư mục được đề cập. Để lưu trữ đường dẫn đầy đủ chúng ta cần khai báo thêm một biến dưới dạng chuỗi.

Bây giờ bên trong câu lệnh with, chọn “SelectedItems”. Gán đường dẫn thư mục các mục đã chọn cho biến mới được xác định.

Bây giờ cuối cùng hiển thị đường dẫn thư mục đã chọn trong hộp thông báo VBA.

Bây giờ tôi sẽ chạy chương trình để xem hộp thoại.

Bây giờ tôi đã chọn Tên tệp là “1. Charts.xlsx ”trong thư mục con“ Biểu đồ ”. Nếu tôi nhấp vào OK, chúng ta có thể thấy đường dẫn thư mục đầy đủ trong hộp thông báo.

Vì vậy, như thế này, chúng ta có thể sử dụng tùy chọn FileDialog để chọn các tệp từ thư mục trong Excel. Sử dụng mã bên dưới để chọn tệp.

Mã:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Đặt Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Chọn của bạn Tệp Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub

$config[zx-auto] not found$config[zx-overlay] not found