Dùng Application.FileDialog(n) nhéMình muốn tạo một nút Brower trên form để tải dữ liệu từ file excel này vào file excel khác. Các bạn giúp mình với
Thì mở file đã chọn lên rồi copythưa thầy. đoạn code này chỉ đưa đường dẫn đến file, với n = 1 thì chấp nhận mở tất cả các định dạng. Nhưng vấn đề là sau khi chọn được file này, làm sao mình có thể coppy dữ liệu trong 1 sheet nào đó trong file excel này sang file excel hiện hành? Giúp em với hu hú. em cám ơn nhiều
Sub Test()
On Error Resume Next
With Application.FileDialog(1)
.Filters.Clear
.Filters.Add "Excel Files", "*.xls", 1
.Show: .AllowMultiSelect = False
Workbooks.Open .SelectedItems(1)
End With
End Sub
Em đã theo mấy anh làm macro, nhưng lại nảy sinh ra 1 vấn đề mới. Vd, đang ở file excel tên là book1.xls, em sẽ dùng đoạn code trên để load file excel book2.xls, lấy dc dữ liệu trong đó 1 cách dễ dàng. Nhưng vấn đề là cái tênptm0412 đã viết:File thứ nhì đã mở rồi, chả lẽ không biết cách copy? Bạn copy và ghi lại bằng record macro sẽ có code.
Cái file book2.xls chính là thằng SelectedItems(1) ở code trên chứ đâu nữa ---> Tức Workbooks.Open "Cái gì" thì Book2.xls của bạn chính là "Cái đó"Em đã theo mấy anh làm macro, nhưng lại nảy sinh ra 1 vấn đề mới. Vd, đang ở file excel tên là book1.xls, em sẽ dùng đoạn code trên để load file excel book2.xls, lấy dc dữ liệu trong đó 1 cách dễ dàng. Nhưng vấn đề là cái tên "book2.xls" sẽ là 1 cái tên cố định trong macro, lần sau em muốn load file khác, nó vẫn cứ load nội dung file book2.xls. Vậy em phải làm sao?
Về câu hỏi TẠO NÚT BROWSE thì đã giải quyết xong rồiPrivate Sub CommandButton2_Click()
On Error Resume Next
With Application.FileDialog(1)
.Filters.Clear
.Filters.Add "Excel Files", "*.xls", 1
.Show: .AllowMultiSelect = False
Workbooks.Open .SelectedItems(1)
activeWorkbooks.Sheets(1).Activate
End With
i = 1
While activeWorkbooks.Sheets(1).Range("A" & i) <> ""
i = i + 1
Wend
i = i - 1
'lấy dữ liều từ file khác qua file open.xls
Windows("open.xls").Activate
For t = 1 To i
Windows("open.xls").workSheets("sheet1").Range("A" & i + 2).Value = activeWorkbooks.Sheets(1).Range("A" & i).Value
Next t
coppy.Hide
End Sub
Bị lỗi! Giúp em với
Thưa Thầy, cho em hỏi trong trường hợp cần thêm báo lỗi khi chọn "Cacel" của FileDialog thì phải làm thế nào? Cám ơn Thầy!Thì mở file đã chọn lên rồi copy
Ví dụ:
Code này mở hộp FileDialog, cho bạn chọn 1 file xls và mở file ấy lên ---> Mở xong rồi, muốn làm gì tiếp là việc của bạnPHP:Sub Test() On Error Resume Next With Application.FileDialog(1) .Filters.Clear .Filters.Add "Excel Files", "*.xls", 1 .Show: .AllowMultiSelect = False Workbooks.Open .SelectedItems(1) End With End Sub
Chỉnh lại như sau:Thưa Thầy, cho em hỏi trong trường hợp cần thêm báo lỗi khi chọn "Cacel" của FileDialog thì phải làm thế nào? Cám ơn Thầy!
Sub test()
Dim wb As Workbook
With Application.FileDialog(1)
.Filters.Add "Excel Files", "*.xls"
.AllowMultiSelect = False
If .Show Then
Set wb = Workbooks.Open(.SelectedItems(1))
Else
MsgBox "Ban da khong chon file nao "
End If
End With
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2