- Tham gia
- 13/6/06
- Bài viết
- 4,813
- Được thích
- 10,315
- Giới tính
- Nam
- Nghề nghiệp
- Giáo viên, CEO tại Bluesofts
TẠO MỤC LỤC TỰ ĐỘNG THEO TÊN SHEET
Lần đầu mình làm ví dụ về hàm BS_SHEETS để tự động lấy ra danh sách các sheet có từ lâu trong Add-in A-Tools nhưng hôm nay mới làm ví dụ phối hợp với hàm BS_VLOOKUP kết hợp VBA tạo Hyperlink để tạo ví dụ động đậy này. Hy vọng giúp được nhiều người.
(*) Trước khi thực hành ví dụ này các bạn phải cái Add-in A-Tools nếu chưa có. Tải tại đây
Hàm BS_SHEETS để lấy ra mảng danh sách tên các sheet trong file Excel đang mở
Hàm BS_VLOOKUP để hiển thị mảng giá trị ra sheet, có lọc tùy biến
=bs_Vlookup("*",bs_Sheets())
Nếu muốn hiển thị thêm cột số thứ tự
=bs_Vlookup("*",bs_Sheets(),{"RECNO()",1})
(số 1 là cột 1 trong mảng trả về bởi hàm bs_Sheets() )
Nếu muốn tạo Hyperlink trên cột số thứ tự để nhấp chuột vào mở sheet thì cần viết sự kiện OnAfterUpdate=Tên sự kiện
Tạo module, copy code tạo sự kiện với tên TaoHLinkSTT (cấu trúc tham số theo quy định). Bên trong code ta lập trình VBA tạo Hyperlink
'---------------------------------------------------------------
Công thức vừa tạo danh mục các sheet có hyperlink bây giờ viết như sau:
=bs_Vlookup("*",bs_Sheets(),{"RECNO()",1},,"OnAfterUpdate=TaoHLinkSTT")
Lần đầu mình làm ví dụ về hàm BS_SHEETS để tự động lấy ra danh sách các sheet có từ lâu trong Add-in A-Tools nhưng hôm nay mới làm ví dụ phối hợp với hàm BS_VLOOKUP kết hợp VBA tạo Hyperlink để tạo ví dụ động đậy này. Hy vọng giúp được nhiều người.
Hàm BS_SHEETS để lấy ra mảng danh sách tên các sheet trong file Excel đang mở
Hàm BS_VLOOKUP để hiển thị mảng giá trị ra sheet, có lọc tùy biến
=bs_Vlookup("*",bs_Sheets())
Nếu muốn hiển thị thêm cột số thứ tự
=bs_Vlookup("*",bs_Sheets(),{"RECNO()",1})
(số 1 là cột 1 trong mảng trả về bởi hàm bs_Sheets() )
Nếu muốn tạo Hyperlink trên cột số thứ tự để nhấp chuột vào mở sheet thì cần viết sự kiện OnAfterUpdate=Tên sự kiện
Tạo module, copy code tạo sự kiện với tên TaoHLinkSTT (cấu trúc tham số theo quy định). Bên trong code ta lập trình VBA tạo Hyperlink
Mã:
'Code VBA by Nguyen Duy Tuan - http://bluesofts.net
Sub TaoHLinkSTT(ByVal DataTable As Range)
Dim Cell As Range, I As Long
For I = 1 To DataTable.Rows.Count 'Chay tu dong 1-> dong cuoi cung
Set Cell = DataTable.Cells(I, 1) 'Toa do tinh theo "DataTable"
'Tao Hyperlink
Cell.Hyperlinks.Add Cell, "", "'" & Cell.Offset(, 1).Value & "'!A1"
Next I
MsgBox DataTable.Address, , "OnAfterUpdate"
End Sub
Công thức vừa tạo danh mục các sheet có hyperlink bây giờ viết như sau:
=bs_Vlookup("*",bs_Sheets(),{"RECNO()",1},,"OnAfterUpdate=TaoHLinkSTT")