PDA

View Full Version : Đặt tên cho Sheet



ThuNghi
30-10-06, 08:58 AM
Nhờ các bạn chỉ giúp:
Tôi có file NKC, tôi đã tạo mỗi số cái là 1 sheet mang ký hiệu 111, 112, 113... từ file NKC (và theo CDPS).
- Giúp tôi viết 1 sub để thông báo là sheet mang tên x đã có rồi, xin bạn tạo Sheet khác, (như trên tôi đã tạo SC 111 rồi, mà tạo thêm lần nữa thì sẽ trùng tên => Msg).
- Và tạo một sheet tổng hợp chỉ ra bảng tính này có bao nhiêu SC (Sh.) để in thành trang tổng hợp, sổ này có những sổ cái TK nào.
Cám ơn

nvson
30-10-06, 01:49 PM
- Giúp tôi viết 1 sub để thông báo là sheet mang tên x đã có rồi, xin bạn tạo Sheet khác, (như trên tôi đã tạo SC 111 rồi, mà tạo thêm lần nữa thì sẽ trùng tên => Msg).

Chức năng này trong Excel đã có sẵn rồi, bạn không thể tạo được 2 sheet có cùng tên đâu.


- Và tạo một sheet tổng hợp chỉ ra bảng tính này có bao nhiêu SC (Sh.) để in thành trang tổng hợp, sổ này có những sổ cái TK nào
Bạn thử code sau:


Public Sub Sheet_List()
Dim i As Byte
i = 1
Cells(i, 1) = "So Sheet trong file"
For Each Sheet In Worksheets
i = i + 1
Cells(i, 1) = Sheet.Name
Next
End Sub

ThuNghi
30-10-06, 02:09 PM
Lý do là khi tôi dùng advance filter để tạo 1 sổ chi tiết từ sổ TH, tôi làm 1 macro lấy tên vùng cần filter vd la ô A1 ="xxx" đặt tên cho Sh, khi trùng nó báo lỗi. Muốn chuyên nghiệp hơn khi lấy biến A1="xxx" và kiểm tra tên Sheet, nếu có thì đặt biến khác. Tôi chưa biết cách kiểm tra tên Sheet bằng macro, dạng như là sheet có tồn tại chưa, giúp hộ nhé, cám ơn

sundaylight
30-10-06, 07:01 PM
Chức năng này trong Excel đã có sẵn rồi, bạn không thể tạo được 2 sheet có cùng tên đâu.


Bạn thử code sau:


Public Sub Sheet_List()
Dim i As Byte
i = 1
Cells(i, 1) = "So Sheet trong file"
For Each Sheet In Worksheets
i = i + 1
Cells(i, 1) = Sheet.Name
Next
End Sub


bạn ơi, cho hỏi bỏ đoạn lệnh trên vào chỗ nào để sử dụng được. Cảm ơn.

nvson
31-10-06, 12:14 PM
Bạn vào Excel, nhấn Alt+F11.
Nhấn Insert/Module
Rồi paste đoạn code trên vào.
Nhấn F5 để chạy (trong VBA), nếu ở Excel nhấn Alt+F8...

Thien
31-10-06, 12:36 PM
Bạn vào Excel, nhấn Alt+F11.
Nhấn Insert/Module
Rồi paste đoạn code trên vào.
Nhấn F5 để chạy (trong VBA), nếu ở Excel nhấn Alt+F8...

Hi! bạn.

Có cách nào trong sheet chứa danh sách các tên sheet trong file có luôn link,để khi nhấp vào tên sheet nào đó thì sẽ di chuyển ngay đến sheet đó.

Thân chào bạn

nvson
31-10-06, 01:09 PM
Sau khi bạn đã tạo được danh sách các tên sheet rồi, nếu muốn nhấn vào tên sheet nào thì nhảy ngay đến sheet đó bạn sử dụng chức năng Hyperlink (Vào Insert/Hyperlink).

nvson
31-10-06, 04:57 PM
Nếu muốn "chuyên nghiệp" hơn thì sử dụng code sau:

Sub Sheet_List()
Dim a, i
Dim sh1
i = 1
Cells(i, 1) = "Cac Sheet trong file:"
For Each sh1 In Worksheets
a = sh1.Name
i = i + 1
Range("A" & i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=a & "!A1", TextToDisplay:=a
Next
End Sub

nvson
01-11-06, 12:21 PM
Đó là do tên sheet có dấu cách (space). Bạn đặt tên sheet không có dấu cách là được.

Mainho
13-11-06, 10:36 AM
Cho minh hoi, khi khong muon dung cac module nay nua thi lam sao xoa hoac chinh sua ten cho de nho?

nvson
13-11-06, 10:42 AM
Trong cửa sổ Project - VBA Project (Khung bên trái) trong Microsoft Visual Basic, nhấn phải chuột vào chữ Module1, chọn Remove Module1. Chọn Yes nếu muốn Save hoặc No nếu không muốn Save Module.

boyxin
04-04-08, 03:42 PM
Hi! bạn.

Có cách nào trong sheet chứa danh sách các tên sheet trong file có luôn link,để khi nhấp vào tên sheet nào đó thì sẽ di chuyển ngay đến sheet đó.

Thân chào bạn


Bạn xem file này thế nào? (sản phẩm của anhtuan1066)
Download File (http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=8983&d=1207268938): Menu sheet and Hyperlink

Bạn có thể Rename, Delete, Insert... sheet (F9 để cập nhật)