[VBA] Tìm files trong một thư mục và copy vào thư mục khác

Liên hệ QC

dangmiu

Thành viên mới
Tham gia
9/10/10
Bài viết
4
Được thích
0
Chào mọi người,

Mình có đoạn code để tìm file từ một thư mục (từ ký tự có sẵn) và copy sang thư mục khác (file đính kèm).
Nhưng code không chạy được với file trong thư mục con, thư mục chính chạy bình thường. Nhờ mọi người giúp đỡ ạ!

P/S: nếu post sai mục nhờ Mod chuyển dùm nhé.
 

File đính kèm

  • source.xlsm
    15.7 KB · Đọc: 111
Chào mọi người,

Mình có đoạn code để tìm file từ một thư mục (từ ký tự có sẵn) và copy sang thư mục khác (file đính kèm).
Nhưng code không chạy được với file trong thư mục con, thư mục chính chạy bình thường. Nhờ mọi người giúp đỡ ạ!

P/S: nếu post sai mục nhờ Mod chuyển dùm nhé.
Thử sửa đường dẫn chỗ 2 dòng code sau:
- SourcePath là đường dẫn nơi Folder chứa File cần chuyển đi.
- DestPath là đường dẫn nơi Folder chứa File cần chuyển đến.

Mã:
 SourcePath = "C:\Users\Admin\Desktop\copyfrom\"
 DestPath = "C:\Users\Admin\Desktop\copyto\"
 
Thử sửa đường dẫn chỗ 2 dòng code sau:
- SourcePath là đường dẫn nơi Folder chứa File cần chuyển đi.
- DestPath là đường dẫn nơi Folder chứa File cần chuyển đến.

Mã:
 SourcePath = "C:\Users\Admin\Desktop\copyfrom\"
DestPath = "C:\Users\Admin\Desktop\copyto\"
Vấn đề là file cần tìm chưa biết cụ thể trong thư mục con nào nha bạn
Ví dụ: Thư mục "copyfrom" bao gồm 10 thư mục con, và không biết file cần tìm nằm cụ thể chỗ nào trong 10 thư mục này.
Bài đã được tự động gộp:

Có vẻ nó hơi khác so với nhu cầu của mình hoặc do kiến thức mình chưa đủ nên chưa hiểu hết ý bạn.
Đại loại:
- File A (file cần code): load dữ liệu gồm các keyword từ file B (theo một số yêu cầu nhất đinh) -> đã làm (1)
- Dựa trên keyword ở (1) tìm trong thư mục "copyto" -> đã làm, nhưng mình không biết cách code để tìm trong thư mục con
Rất mong được bạn giúp đỡ!
 
Lần chỉnh sửa cuối:
Vấn đề là file cần tìm chưa biết cụ thể trong thư mục con nào nha bạn
Ví dụ: Thư mục "copyfrom" bao gồm 10 thư mục con, và không biết file cần tìm nằm cụ thể chỗ nào trong 10 thư mục này.
..........................................
Rất mong được bạn giúp đỡ!
Nhiều Folder thì kệ nó:
1/ Tại 2 dòng code trên sửa lại đường dẫn là 1 Cell nào đó, dùng Validation chọn Folder bất kỳ để lấy tên File.
2/ Xóa dòng những tên File không cần di chuyển.
3/ Muốn di chuyển đến dâu dùng Validation chọn Folder cần di chuyển đến.
4/ Nhấn nút thì nó sẽ di chuyển File theo ý muốn.
 
Có vẻ nó hơi khác so với nhu cầu của mình hoặc do kiến thức mình chưa đủ nên chưa hiểu hết ý bạn.
Đại loại:
- File A (file cần code): load dữ liệu gồm các keyword từ file B (theo một số yêu cầu nhất đinh) -> đã làm (1)
- Dựa trên keyword ở (1) tìm trong thư mục "copyto" -> đã làm, nhưng mình không biết cách code để tìm trong thư mục con
Rất mong được bạn giúp đỡ!
---------------------------


Bạn tải file ở #9 bài viết đấy chưa.
 
Nhiều Folder thì kệ nó:
1/ Tại 2 dòng code trên sửa lại đường dẫn là 1 Cell nào đó, dùng Validation chọn Folder bất kỳ để lấy tên File.
2/ Xóa dòng những tên File không cần di chuyển.
3/ Muốn di chuyển đến dâu dùng Validation chọn Folder cần di chuyển đến.
4/ Nhấn nút thì nó sẽ di chuyển File theo ý muốn.
Sau 1 thời gian có thể phát sinh thêm folder (dùng chung với các phòng ban khác) -> khó cập nhật danh sách folder.
Phần folder chuyển đến thì cố định rồi nên không cần chỉnh nữa.
Cảm ơn bạn đã góp ý, nếu có ý tưởng thì bổ sung thêm nha.
Bài đã được tự động gộp:

---------------------------


Bạn tải file ở #9 bài viết đấy chưa.
Mình có đọc qua mà nhiều quá, bạn có thể trích đoạn nào "tìm (keyword có sẵn ở nhiều cells) và copy được không.
VBA mình mới nhập môn nên không rành.
Giúp dùm nhé!
 
Bạn copy đoạn: C:\Users\Admin\Desktop\copyfrom\ Vào phần thư mục

copy C:\Users\Admin\Desktop\copyto\ vào phần Đến thư mục

Đánh dấu tick vào Bao gồm thư mục con
Bỏ dấu tick ở Tất cả loại tệp

Gõ vào kiểu tệp: *.xlsx

Click vào Làm mới

Click vào Sao chép toàn bộ đến

-----------------------------
 

File đính kèm

  • QuanLyFile.xlsm
    129.8 KB · Đọc: 159
Bạn copy đoạn: C:\Users\Admin\Desktop\copyfrom\ Vào phần thư mục

copy C:\Users\Admin\Desktop\copyto\ vào phần Đến thư mục

Đánh dấu tick vào Bao gồm thư mục con
Bỏ dấu tick ở Tất cả loại tệp

Gõ vào kiểu tệp: *.xlsx

Click vào Làm mới

Click vào Sao chép toàn bộ đến

-----------------------------
Cảm ơn bạn đã giúp nhé!
Mình sẽ nghiên cứu thêm để phù hợp với code mình đang làm.
 
Bạn copy đoạn: C:\Users\Admin\Desktop\copyfrom\ Vào phần thư mục

copy C:\Users\Admin\Desktop\copyto\ vào phần Đến thư mục

Đánh dấu tick vào Bao gồm thư mục con
Bỏ dấu tick ở Tất cả loại tệp

Gõ vào kiểu tệp: *.xlsx

Click vào Làm mới

Click vào Sao chép toàn bộ đến

-----------------------------
Em chào anh
Nhờ anh giúp đỡ
Trong file anh chia sẽ QuanLyFile.xlsm, ở mục "tên chứa" có thể thêm một danh sách nhiều đoạn mã cùng một lúc được không?
Em cần copy một danh sách nhiều file PDF có chứa các đoạn mã bên dưới, nếu nhập từng cái thì lâu.
Do kiến thức VBA còn hạn hẹp em chưa tự sửa code được, anh hỗ trợ giúp, em cảm ơn
Ví dụ
06342PO6006874744
09972PO6006875221
06316PO6006874740
06341PO6006874743
06391PO6006874763
06198PO6006874681
06775PO6006874882
04853PO6006874418
 
Em chào anh
Nhờ anh giúp đỡ
Trong file anh chia sẽ QuanLyFile.xlsm, ở mục "tên chứa" có thể thêm một danh sách nhiều đoạn mã cùng một lúc được không?
Em cần copy một danh sách nhiều file PDF có chứa các đoạn mã bên dưới, nếu nhập từng cái thì lâu.
Do kiến thức VBA còn hạn hẹp em chưa tự sửa code được, anh hỗ trợ giúp, em cảm ơn
Ví dụ
06342PO6006874744
09972PO6006875221
06316PO6006874740
06341PO6006874743
06391PO6006874763
06198PO6006874681
06775PO6006874882
04853PO6006874418
Bạn tải file bên bài viết này và tên chứa bạn gõ: #####PO#*
hoặc hoặc: #####PO#*|*#XY#*|*#AA#*
 
Lần chỉnh sửa cuối:
Bạn tải file bên bài viết này và tên chứa bạn gõ: #####PO#*
hoặc hoặc: #####PO#*|*#XY#*|*#AA#*
Em không có ý lấy tất cả các file có cấu trúc tương tự.
Mà là Em có danh sách các từ khóa tiêu đề cụ thể, chỉ lọc lâý các file có chứa từ khóa trong danh sách. Do Số lượng file nhiều, mà File anh chia sẻ thì mỗi lần nhập ở mục "Tên chứa :" chỉ được 1,2 từ khóa. Nên em hỏi có thể điều chỉnh để nhập vào một mảng nhiều từ khóa không ạ. Cảm ơn anh rất nhiều, file rất hay em chỉ bị chút vấn đề ở đây.
 
Em không có ý lấy tất cả các file có cấu trúc tương tự.
Mà là Em có danh sách các từ khóa tiêu đề cụ thể, chỉ lọc lâý các file có chứa từ khóa trong danh sách. Do Số lượng file nhiều, mà File anh chia sẻ thì mỗi lần nhập ở mục "Tên chứa :" chỉ được 1,2 từ khóa. Nên em hỏi có thể điều chỉnh để nhập vào một mảng nhiều từ khóa không ạ. Cảm ơn anh rất nhiều, file rất hay em chỉ bị chút vấn đề ở đây.
Nối tất cả từ khóa bằng dấu | đó bạn, không giới hạn số từ khóa
Bạn tìm thêm hàm JoinText để nối chuỗi
 
1655779416896.png

Vẫn không trích xuất ra được các file từ khóa ở sau "|" anh. Chỉ được 1 từ khóa đầu.
 
Bạn copy đoạn: C:\Users\Admin\Desktop\copyfrom\ Vào phần thư mục

copy C:\Users\Admin\Desktop\copyto\ vào phần Đến thư mục

Đánh dấu tick vào Bao gồm thư mục con
Bỏ dấu tick ở Tất cả loại tệp

Gõ vào kiểu tệp: *.xlsx

Click vào Làm mới

Click vào Sao chép toàn bộ đến

-----------------------------

Trên file "quanlyfile" có thể thực hiện đổi tên folder được không ạ.
Nếu muốn đổi tên folder thì làm như thế nào ạ!
 
Web KT
Back
Top Bottom