Đọc dữ liệu giữa các sheet như thế nào ? (1 người xem)

  • Thread starter Thread starter shpy
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

shpy

Thành viên mới
Tham gia
9/5/08
Bài viết
11
Được thích
0
Mình chỉ biết dùng excel các hàm cơ bản nên gặp trường hợp này không biết xửa lý sao, các bạn giúp mình với:

Mình có
- 1 file exel AAA với nhiều sheets tên các sheet không theo quy tắc gì hết : xyz, zyx .v.v. Mỗi sheet có 2 phần mình quan tâm là cột A và ô Z1:
+ Cột A mỗi sheet có số dòng dữ liệu khác nhau : vì dụ xyz có m dòng , zyx có n dòng ...
+ Ô Z1 của các sheet là cố định và dữ liệu của chúng có thể khác nhau.
+ Số lượng sheet và dòng trong các sheet sẽ tăng thêm do mình nhập vào.

Cái mình cần là như sau:
- 1 file BBB có 1 sheet để đọc dữ liệu mình quan tâm từ file AAA: có 3 cột chủ yếu
+ Cột A: đánh số thứ tự tự tăng theo số dòng tăng thêm (cái này không tự động được thì mình làm tay cũng không sao!)
+ Cột B : m dòng đầu tiên của cột B có giá trị Z1 của sheet xyz (m là số dòng giá trị của cột A trong xyz), n dòng tiếp theo có giá trị Z1 của sheet zyx (n là số dòng giá trị của cột A trong zyx) .... cứ thế đến sheet cuối cùng
+ Cột C : m dòng đầu tiên có giá trị bằng m dòng giá trị của cột A xyz, n dòng kết tiếp có giá trị bằng n dòng giá trị của cột A zyx

++ Khi thay đổi giá trị của dòng nào đó của cột A trong sheet nào đó của AAA thì khi chạy BBB, nó cũng tự thay đổi dòng tương ứng theo.
++ Khi thêm 1 dòng trong sheet nào đó thì ở BBB dòng đó được thêm vào dưới cùng của cột dữ liệu (tức là vị trí m+n+...+1)
++ Khi thêm 1 sheet nào đó ở AAA thì ở BBB sẽ thêm số dòng của sheet mới vào dưới cùng

Nếu mà tách riêng 2 file không được thì giúp mình làm chung 1 file cũng được (thực ra vì file AAA quá lớn, chạy chậm lắm !! > 200 sheet rồi ). Rồi trong quá trình mình add thêm, dữ liệu bên BBB sẽ bị "phân mảnh" lung tung, nếu có chức năng chạy lại từ đầu luôn thì tốt quá (ít sử dụng vì các dòng được đánh ID để import vào database rồi !)
 
Oh, thế chắc bạn chỉ có cách viết VBA thôi, có 2 cách

C1
và viết trong file BBB collect dữ liệu mỗi lần mở (open),
--> nhưng như thế là thay đổi BBB -> chắc chắn BBB phân mảnh (vì mỗi lần ghi mới là gần như widows phải phân mảnh) - để chống điều này thì theo cách 2

C2
và viết trong file AAA xuất dữ liệu mỗi lần nhấp vào nút (hay chạy sub), => xuất ra 1 file BBB mới -> nhược điểm có thể chạy lâu vì phải xuất tất cả (nhưng chắc tốc độ máy tính k là gì - với cả bạn ít khi xuất mà mà

-----------

Có thắc mắc là, bạn viết:
++ Khi thêm 1 dòng trong sheet nào đó thì ở BBB dòng đó được thêm vào dưới cùng của cột dữ liệu (tức là vị trí m+n+...+1)

Chính xác là Khi thêm 1 dòng trong sheet nào đó thì ở BBB dòng đó được thêm vào dưới cùng của phần dữ liệu tương ứng (tức là vị trí m+1 hay n+1, ...+1)- KHÔNG BIẾT THẾ CÓ ĐÚNG K NHỈ

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

Cuối cùng bạn NÊN đưa 1 file mấu (AAA) với Dữ liệu VD -> đề mọi ng dễ hình dung
.
 
Cảm ơn bạn đã trả lời giúp mình.

-----------

Có thắc mắc là, bạn viết:


Chính xác là Khi thêm 1 dòng trong sheet nào đó thì ở BBB dòng đó được thêm vào dưới cùng của phần dữ liệu tương ứng (tức là vị trí m+1 hay n+1, ...+1)- KHÔNG BIẾT THẾ CÓ ĐÚNG K NHỈ

-------------
.[/quote]
Không phải vậy. Ví dụ có 3 sheet rồi với m n l dòng thì trong BBB có sẵn m+n+l dòng. Sau đó add thêm vào xyz 1 dòng tức là xyz có m+1 dòng. Nhưng dòng đó sẽ được add vào vị trí m+n+l+1 của BBB

Vì file lớn quá nên mình cắt tạm 1 phần để các bạn dễ hình dung. Phần tô đỏ là phần dữ liệu mình quan tâm (AL chính là Z1)

Bạn hướng dẫn mình làm theo cách 1 nhé , khi mở BBB nó sẽ tự tìm cái mới mà add vào !
 

File đính kèm

Web KT

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

Back
Top Bottom