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

VBA cho phép bạn chọn một tệp để mở bằng cách sử dụng Application.GetOpenFilename phương pháp. Trong hướng dẫn này, bạn sẽ học cách mở hộp thoại tệp và thiết lập các tham số.

Nếu bạn muốn tìm hiểu cách mở và đóng tệp, bạn có thể nhấp vào liên kết này: VBA Open / Close File

Mở hộp thoại tệp trong VBA

Nếu bạn muốn mở tệp trong VBA, trước tiên bạn cần mở hộp thoại tệp để chọn tệp. Đây là mã:

123 Dim strFile As StringstrFile = Application.GetOpenFilename (FileFilter: = "Các tệp Excel (* .xlsx *), * .xlsx *", Title: = "Chọn tệp Excel để mở", MultiSelect: = True)

Như bạn có thể thấy, phương thức này có một số tham số. FileFilter cho phép bạn lọc các loại tệp mà bạn cần, trong trường hợp của chúng tôi là tệp .xlsx.

bên trong Tiêu đề , bạn có thể đặt tiêu đề của hộp thoại. Nếu bạn muốn cho phép mở nhiều tệp, bạn cần đặt MultipleSelect thành True. Nếu bạn không đặt thông số này, bạn chỉ có thể chọn một tệp.

Hình ảnh 1. Mở hộp thoại tệp

Như bạn có thể thấy trong Hình 1, hộp thoại xuất hiện với tiêu đề Chọn một tệp Excel. Chỉ các tệp Excel được lọc và chúng tôi có thể chọn nhiều tệp.

Mở Hộp thoại Tệp trong một Thư mục Cụ thể

Nếu bạn muốn mở một hộp thoại trong một thư mục cụ thể, bạn phải sử dụng phương pháp .FileDialog với tham số msoFileDialogFilePicker. Trong ví dụ, chúng tôi sẽ mở một hộp thoại trong thư mục Thư mục C: \ VBA. Đây là mã:

123456789101112131415161718192021 Dim fd As Office.FileDialogDim strFile As StringĐặt fd = Application.FileDialog (msoFileDialogFilePicker)Với fd.Filters.Clear.Filters. Thêm "Tệp Excel", "* .xlsx?", 1.Title = "Chọn một tệp Excel".AllowMultiSelect = False.InitialFileName = "Thư mục C: \ VBA"Nếu .Show = Đúng thìstrFile = .SelectedItems (1)Kết thúc nếuKết thúc với

Đầu tiên bạn cần khai báo biến fd kiểu Office.FileDialog và biến chuỗi để lấy tệp:

12 Dim fd As Office.FileDialogDim strFile As String

Sau đó, bạn cần thiết lập fd đến Application.FileDialog (msoFileDialogFilePicker):

1 Đặt fd = Application.FileDialog (msoFileDialogFilePicker)

Bây giờ, trong Với fd Kết thúc với, chúng tôi có thể đặt nhiều tham số:

1234567 .Filters.Clear.Filters. Thêm "Tệp Excel", "* .xlsx?", 1.Title = "Chọn một tệp Excel".AllowMultiSelect = False

Ở đây chúng tôi xóa các bộ lọc tệp (.Filters.Clear) và đặt nó thành .xlsx (.Filters.Add “Excel Files”, “* .xlsx?”, 1).

Ngoài ra, chúng ta có thể đặt tiêu đề của hộp thoại: .Title = “Chọn một tệp Excel”.

Chúng tôi có thể giới hạn người dùng chỉ được chọn một tệp bằng cách:.AllowMultiSelect = Sai

Để mở một hộp thoại trong thư mục chúng ta muốn, chúng ta cần đặt dòng mã này:

1 .InitialFileName = "Thư mục C: \ VBA"

Cuối cùng, chúng tôi sẽ chỉ mở hộp thoại với tất cả các tham số đã được thiết lập trước đó:

12345 Nếu .Show = Đúng thìstrFile = .SelectedItems (1)Kết thúc nếu

Khi chúng tôi thực thi mã này, hộp thoại mở tệp sẽ xuất hiện trong thư mục Thư mục C: \ VBA:

Hình ảnh 2. Mở hộp thoại tệp trong một thư mục cụ thể

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