Chào mọi người.tình hình là mình mới học VBA và có tham khảo 1 số code để mở file excell từ folder trên mạng.Tự viết lại nhưng khi chạy thì lại báo lỗi.mong mọi người hỗ trợ giúp mình với
Sub copyfile13()
Application.ScreenUpdating = False
Dim chonFile As Variant
chonFile = Application.GetOpenFilename(Title:="Chon cac file can copy", MultiSelect:=True)
If chonFile = False Then Exit Sub
Filename = Dir(Path & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy AFTER:=ThisWorkbook.Sheets(1)
Next
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
Chào mọi người.tình hình là mình mới học VBA và có tham khảo 1 số code để mở file excell từ folder trên mạng.Tự viết lại nhưng khi chạy thì lại báo lỗi.mong mọi người hỗ trợ giúp mình với
Sub copyfile13()
Application.ScreenUpdating = False
Dim chonFile As Variant
chonFile = Application.GetOpenFilename(Title:="Chon cac file can copy", MultiSelect:=True)
If chonFile = False Then Exit Sub
Filename = Dir(Path & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy AFTER:=ThisWorkbook.Sheets(1)
Next
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
- nêu chọn tập tin thì chonFile là một MẢNG. Nếu chọn 1 tập tin thì chonFile là một MẢNG có 1 giá trị là đường dẫn tới tập tin được chọn. Nếu chọn k tập tin thì chonFile là một MẢNG có k giá trị, mà mỗi giá trị là đường dẫn của 1 tập tin được chọn.
Khi MultiSelect:=True thì phải dùng như sau để khôg có lỗi
Mã:
...
If IsArray(chonFile) = False Then Exit Sub
...
2. Đoạn
Mã:
Filename = Dir(Path & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy AFTER:=ThisWorkbook.Sheets(1)
Next
Workbooks(Filename).Close
Filename = Dir()
Loop
lại có dụng ý khác. Ở đây không có chuyện chọn các TẬP TIN để copy. Ở đây là lấy TẤT CẢ các tập tin có trong thư mục cho trước. Path là thư mục cho trước, chính xác hơn là đường dẫn tới thư mục. Path phải được đọc từ đâu đó, vd từ 1 ô trên sheet, hoặc phải mở cửa sổ để chọn thư mục PATH. Hiện thời thì không có code đọc từ sheet và cũng không có code mở cửa sổ để chọn PATH nên có 2 trường hợp:
- nếu ở đầu module có Option Explicit thì khi chạy code sẽ có lỗi "Variable not defined"
- nếu không có Option Explicit thì PATH được coi là biến không được khai báo tường minh. Do không được thiết lập giá trị ở thời điểm "chào buổi sáng" nên PATH = RỖNG. Do PATH = RỖNG (Empty) nên toàn bộ code chạy không đúng ý.
Bác Batman góp ý tận tình quá làm bạn ấy rối nùi. Từng đoạn code ở đây là do bạn ấy cóp nhặt về do đó không đầu không đuôi. Cần có thời gian để sai và sửa.
Bác Batman góp ý tận tình quá làm bạn ấy rối nùi. Từng đoạn code ở đây là do bạn ấy cóp nhặt về do đó không đầu không đuôi. Cần có thời gian để sai và sửa.
Người ta đã trả lời tôi đâu mà bạn biết người ta rối?
Tất nhiên cần thời gian để hiểu và nâng cao kiến thức, nhưng nếu tôi không phân tích thì làm sao người ta biết người ta đã sai ở đâu? Tôi không nói mà người ta tự biết?
Người ta đã trả lời tôi đâu mà bạn biết người ta rối?
Tất nhiên cần thời gian để hiểu và nâng cao kiến thức, nhưng nếu tôi không phân tích thì làm sao người ta biết người ta đã sai ở đâu? Tôi không nói mà người ta tự biết?