- Một hộp nhập liệu. Nút Browse cho phép chọn thư mục chứa các tập tin excel. Khi chọn xong, đường dẫn này hiển thị trong hộp nhập liệu, và các tập tin excel xuất hiện trong Khung hiển thị danh sách (ListView)
- Khung hiển thị danh sách với thuộc tính (property) Checkboxes có giá trị True cho phép hiển thị các hộp chọn trước mỗi tập tin. Và thuộc tính View có giá trị 2-lvwList để hiển thị nội dung dưới dạng danh sách.
Dưới đây là mã nguồn của hộp thoại trên :
Option Explicit Private Sub chbSelectAll_Click() Dim item As Object If ListViewFiles.ListItems.Count > 0 Then If chbSelectAll.Value = True Then ' select all files For Each item In ListViewFiles.ListItems item.Checked = True Next ElseIf chbSelectAll.Value = False Then ' deselect all files For Each item In ListViewFiles.ListItems item.Checked = False Next End If End If End Sub Private Sub cmdBrowse_Click() Dim fd As FileDialog Dim path As String Dim file As String Set fd = Application.FileDialog(msoFileDialogFolderPicker) ' open FileDialog and get folder path selected by user If fd.Show = -1 Then path = fd.SelectedItems(1) End If ' update txtFolder txtFolder.Text = path ' fill list of excel file into the ListViewFiles file = Dir(path & "\*.xls") ListViewFiles.ListItems.Clear Do While Len(file) > 0 ListViewFiles.ListItems.Add , , file file = Dir() Loop End Sub Private Sub cmdCancel_Click() UserForm_Terminate End Sub Private Sub cmdPrint_Click() Dim folder As String Dim wkb As Workbook folder = txtFolder.Text If folder = "" Then MsgBox "Please chose an excel folder." Else Application.EnableEvents = False Application.ScreenUpdating = False If ListViewFiles.ListItems.Count > 0 Then Dim item As Object ' loop through all files and print them For Each item In ListViewFiles.ListItems If item.Checked = True Then ' open excel file Set wkb = Workbooks.Open(Filename:=folder & "\" & item.Text) ' select the first sheet of the workbook and print it ActiveWorkbook.Sheets(1).Select ActiveWindow.SelectedSheets.PrintOut copies:=1 wkb.Close False ' Debug.Print folder & "\" & item.Text End If Next End If Application.EnableEvents = True Application.ScreenUpdating = True End If End Sub Private Sub UserForm_Terminate() Unload Me End Sub
Giải thích mã :
- Hàm cmdBrowse_Click được gọi khi ta nhấn nút Browse : mở hộp thoại thư mục. Khi một thư mục được chọn, các tập tin excel trong đó sẽ xuất hiện trong khung hiển thị danh sách.
- Hàm chbSelectAll_Click cho phép chọn hoặc không chọn toàn bộ các tập tin trong khung hiển thị danh sách khi ta nhấn hộp chọn "Select all"
- Hàm cmdPrint_Click để in các tập tin excel được chọn khi ta nhấn nút Print.
Không có nhận xét nào:
Đăng nhận xét