Lấy sheet của file trong folder

Liên hệ QC

boyxin

Members actively
Tham gia
10/3/08
Bài viết
1,664
Được thích
2,335
Nhờ anh em trên Forums xem và giúp. Hiện đang bị lỗi
- Hiện tên sheets nhưng chưa lấy được nội dung
- Cùng là file *.xls trong 1 folder: file thì hiện tên các sheets, file thì lại không
 

File đính kèm

  • boyxin.rar
    248.6 KB · Đọc: 8
Nhờ anh em trên Forums xem và giúp. Hiện đang bị lỗi
- Hiện tên sheets nhưng chưa lấy được nội dung
- Cùng là file *.xls trong 1 folder: file thì hiện tên các sheets, file thì lại không
- Lỗi không hiện tên Sheets là do có merge cell (bỏ merge cell thì hiện tên các Sheets)
- Vẫn cần lấy được nội dung sheets được chọn - MONG NHẬN ĐƯỢC QUAN TÂM TRỢ GIÚP
 
Upvote 0
- Lỗi không hiện tên Sheets là do có merge cell (bỏ merge cell thì hiện tên các Sheets)
- Vẫn cần lấy được nội dung sheets được chọn - MONG NHẬN ĐƯỢC QUAN TÂM TRỢ GIÚP
Anh sửa File của em lại một tí và thêm một số code, xem thử File:
1/Khi Form hiện ra và nhấn nút Browse...Chọn Folder cần lấy tên File nó lấy đường dẫn của Folder vào TextBox và lấy tên của tất cả các File vào LixtBox1 có tên lstWB.
2/ Click chọn tên File trong LixtBox1 (lstWB) nó sẽ hiện tất cả tên sheet của File vừa chọn vào LixtBox2 có tên lstWS.
3/ Click chọn tên 1 sheet trong LixtBox2 (lstWS) xong nhấn nút Lấy dữ liệu nó sẽ Copy sheet vừa chọn vào File.

A_Form.JPG
 

File đính kèm

  • UserForm Copy Sheet.xlsm
    29.7 KB · Đọc: 41
Upvote 0
Thử nghiên cứu ADO xem xài OpenSchema mà lấy tên Sheet đại ý nó như sau ...
Hoặc tìm trên GPE Nick Anh Ndu xài DAO lấy SheetName ++ ... rất nhiều cách
Mã:
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rs = cn.OpenSchema(20)  '20 = adSchemaTables
 
Upvote 0
Upvote 0
Anh sửa File của em lại một tí và thêm một số code, xem thử File:
1/Khi Form hiện ra và nhấn nút Browse...Chọn Folder cần lấy tên File nó lấy đường dẫn của Folder vào TextBox và lấy tên của tất cả các File vào LixtBox1 có tên lstWB.
2/ Click chọn tên File trong LixtBox1 (lstWB) nó sẽ hiện tất cả tên sheet của File vừa chọn vào LixtBox2 có tên lstWS.
3/ Click chọn tên 1 sheet trong LixtBox2 (lstWS) xong nhấn nút Lấy dữ liệu nó sẽ Copy sheet vừa chọn vào File.

View attachment 238408
E cảm ơn nhiều ạ.

Bạn có thể vào bài Đố vui về ADO/DAO để tham khảo thêm nhé.
+
Thử nghiên cứu ADO xem xài OpenSchema mà lấy tên Sheet đại ý nó như sau ...
Hoặc tìm trên GPE Nick Anh Ndu xài DAO lấy SheetName ++ ... rất nhiều cách
Mã:
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rs = cn.OpenSchema(20)  '20 = adSchemaTables
E sẽ ngâm cứu thêm
 
Upvote 0
Anh sửa File của em lại một tí và thêm một số code, xem thử File:
1/Khi Form hiện ra và nhấn nút Browse...Chọn Folder cần lấy tên File nó lấy đường dẫn của Folder vào TextBox và lấy tên của tất cả các File vào LixtBox1 có tên lstWB.
2/ Click chọn tên File trong LixtBox1 (lstWB) nó sẽ hiện tất cả tên sheet của File vừa chọn vào LixtBox2 có tên lstWS.
3/ Click chọn tên 1 sheet trong LixtBox2 (lstWS) xong nhấn nút Lấy dữ liệu nó sẽ Copy sheet vừa chọn vào File.

View attachment 238408
Anh sửa File của em lại một tí và thêm một số code, xem thử File:
1/Khi Form hiện ra và nhấn nút Browse...Chọn Folder cần lấy tên File nó lấy đường dẫn của Folder vào TextBox và lấy tên của tất cả các File vào LixtBox1 có tên lstWB.
2/ Click chọn tên File trong LixtBox1 (lstWB) nó sẽ hiện tất cả tên sheet của File vừa chọn vào LixtBox2 có tên lstWS.
3/ Click chọn tên 1 sheet trong LixtBox2 (lstWS) xong nhấn nút Lấy dữ liệu nó sẽ Copy sheet vừa chọn vào File.

View attachment 238408
Chao be09 ah
Có thể tiện cho em hỏi thay vì copy dữ liệu thì em chỉ muốn mở sheet của file đó lên thôi thì làm như thế nào ah?tức là lấy dữ liệu thay bằng mở file du lieu ah.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom