Lấy tên cũa tất cã các Sheet!

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Nào xin mời các bạn nghiên cứu chiêu này nhé:
Hãy dùng công thức đễ lấy toàn bộ tên Sheet hiện có trong Workbook hiện hành
Tất nhiên việc lấy tên sheet bằng hàm CELL("Filename") chúng ta đã từng có nói trên diển đàn rồi.. nhưng đó chỉ là lấy tên cũa 1 sheet... Ở đây là lấy toàn bộ tên tất cã các sheet với 1 công thức duy nhất
Mến
ANH TUẤN
 
anhtuan1066 đã viết:
Ái chà... Bài toán này sao chẳng thấy ai quan tâm thế nhỉ? Nó ko có ứng dụng thực tế? Hay là nó quá dễ? He...he...
Cũng có quan tâm chứ Anhtuan, hơn 100 lần đọc rồi, tôi nghĩ không trả lời có mấy lý do :
  1. Đề tài quá khó, mọi người suy nghĩ mà chưa ra !$@!!
  2. Ở cấp cao thủ thì có thể thấy ứng dụng đề tài này nhưng khó quá nên dùng chiêu khác thế.
  3. Ở cấp như tôi thì chỉ biết dự thính hic hic.

    Cao thủ như Anhtuan mà hỏi thì chỉ có cao thủ trả lời thôi, kể ra cũng bất công nhỉ, trò bí hỏi Thầy Thầy trả lời, Thầy bí thì kakaka...
 
Cãm ơn bạn! Nhưng các bạn cứ yên tâm, với câu hỏi này thì tôi nghĩ là ko đến nỗi khó lắm... Gợi ý 1 tí:
Có 2 cách làm:
1> Dùng hàm CELL nhưng tham chiếu đến 1 name chứ ko tham chiếu đến 1 cell... ví dụ: CELL("filename",name)... Tiếp theo là việc xử lý chuổi bình thường...
2> Dùng các hàm macro 4
Mến
ANH TUẤN
 
Tôi xin đưa ra cách làm dễ nhất bằng hàm macro 4
1> Đầu tiên đặt 4 name:
Mã:
ShN =GET.WORKBOOK(ROW(INDIRECT("A1")))
Mã:
Wb =GET.WORKBOOK(ROW(INDIRECT("A16")))
Mã:
NoSs =GET.WORKBOOK(4) + NOW()*0
Mã:
AllSh =SUBSTITUTE(ShN,"["&Wb&"]","")
Diển giãi:
a> ShN: Trã về 1 mãng ngang với các phần tử là toàn bộ các tên Sheet có trong Workbook... Kết quã có dạng Text: [Tên File]Tên Sheet
b> Wb: Trã về tên Workbook, kết quã có dạng Text: Tên File
c> NoSs: Trã về số lượng Sheet có trong Workbook, kết quã dạng Number
d> AllSh: dùng SUBSTITUTE đễ cắt lấy tên Sheet
2> Cuối cùng tại 1 cell bất kỳ thiết lập công thức:
Mã:
=IF(ROW(1:1)>NoSs,"",INDEX(AllSh,1,ROW(1:1)))
Kéo fill công thức này đến khi nào gặp kết quã rỗng thì thôi...
Sở dỉ ko dùng GET.WORKBOOK(1) mà phải dùng GET.WORKBOOK(ROW(INDIRECT("A1"))) và hàm NOW() là vì lý do muốn "ép" nó phải tự cập nhật khi có sự thay đỗi, chẳng hạn là đổi tên sheet
Xem file đính kèm...
Còn lại cách dùng hàm CELL các bạn tự nghiên cứu nhé... Gợi ý: Tại cell A1 cũa mỗi sheet, các bạn lần lượt đặt name: Sh1, Sh2, Sh3... vân vân đến sheet cuối cùng... Tiếp theo dùng hàm CELL tham chiếu đến name vừa đặt:
Mã:
All =CELL("filename",INDIRECT("Sh"&ROW(INDIRECT("1:256"))))
Nhiệm vụ cuối cùng là cắt lấy tên sheet... Các bạn cố lên.. ko khó lắm đâu!
ANH TUẤN
 

File đính kèm

Web KT

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

Back
Top Bottom