Yukino Ichikawa
VIP
7. Ví dụ về sử dụng control TreeView trong thực tiễn
(Phần 4)
Ở phần này, tôi sẽ thêm chức năng cho TreeView, nếu người dùng ấn phím F2, thì có thể thay đổi tên sheet.
Với đoạn code trên, chúng ta có thể chỉnh sửa tên Node. Bây giờ tới vấn đề sửa tên sheet, sẽ có các vấn đề như sau:
-Tên sheet mà chúng ta muốn thay đổi đã tồn tại trong file Excel đó hay chưa, nếu đã có rồi thì việc thay đổi là không thể thực thi.
-Tôi không rõ qui tắc tên đặt cho sheet phải chứa những ký tự gì, để phòng tránh người dùng sử dụng ký tự quá lạ dẫn tới không thể đặt tên cho sheet, chúng ta sẽ thực hiện bước kiểm tra sau khi người dùng nhập tên sheet mới thì file Excel đó đã có tên sheet mà chúng ta chỉ định hay chưa?
Chúng ta sẽ viết code trên sự kiện AfterLabelEdit của TreeView.
File demo download
(Phần 4)
Ở phần này, tôi sẽ thêm chức năng cho TreeView, nếu người dùng ấn phím F2, thì có thể thay đổi tên sheet.
Bạn cần đăng nhập để thấy hình ảnh
Mã:
Private Sub TreeView1_KeyUp(KeyCode As Integer, ByVal Shift As Integer)
If KeyCode = 113 Then 'Phim F2
TreeView1.StartLabelEdit
End If
End Sub
-Tên sheet mà chúng ta muốn thay đổi đã tồn tại trong file Excel đó hay chưa, nếu đã có rồi thì việc thay đổi là không thể thực thi.
-Tôi không rõ qui tắc tên đặt cho sheet phải chứa những ký tự gì, để phòng tránh người dùng sử dụng ký tự quá lạ dẫn tới không thể đặt tên cho sheet, chúng ta sẽ thực hiện bước kiểm tra sau khi người dùng nhập tên sheet mới thì file Excel đó đã có tên sheet mà chúng ta chỉ định hay chưa?
Chúng ta sẽ viết code trên sự kiện AfterLabelEdit của TreeView.
Mã:
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
Dim BookName As String, SheetName As String, ws, flag As Boolean
With TreeView1
BookName = .SelectedItem.Parent
SheetName = .SelectedItem
''Co ton tai Sheet trung ten hay khong?
For Each ws In Workbooks(BookName).Worksheets
If ws.Name = NewString Then
flag = True
Exit For
End If
Next ws
If flag Then
MsgBox NewString & " : ten sheet nay da ton tai roi", vbExclamation
Cancel = True
Exit Sub
End If
''Xu ly chinh, thay doi ten sheet
On Error Resume Next
Workbooks(BookName).Worksheets(SheetName).Name = NewString
''Kiem tra thay doi ten sheet thanh cong hay chua?
For Each ws In Workbooks(BookName).Worksheets
If ws.Name = NewString Then
flag = True
Exit For
End If
Next ws
''Neu that bai thi dua ra thong bao
If Not flag Then
MsgBox NewString & ": Khong the thay doi ten sheet", vbExclamation
Cancel = True
End If
End With
End Sub
Bạn cần đăng nhập để thấy link
.