Cho e hỏi hàm VB để tạo 1 sheet mới, hàm hiện 1 sheet mặc định mỗi khi mở excel

Liên hệ QC

nguyenvietcuong

Thành viên mới
Tham gia
26/3/08
Bài viết
19
Được thích
1
E đang thực hiện 1 bài toán như yêu cầu trong file đính kèm, về giao diện tương đối hòm hòm, nhưng e ko biết dùng hàm VB để thực hiện 1 số nội dung trong đấy như thế nào -+*/. Ví dụ:

- Hàm copy 1 sheet có sẵn tới vị trí cuối cùng trong workbook.

- Hàm hiện 1 sheet đã định trước mỗi khi mở file excel này lên.

Mong các a c hướng dẫn giúp ạ.

E cám ơn các a c ạ. :D
 

File đính kèm

E đang thực hiện 1 bài toán như yêu cầu trong file đính kèm, về giao diện tương đối hòm hòm, nhưng e ko biết dùng hàm VB để thực hiện 1 số nội dung trong đấy như thế nào -+*/. Ví dụ:

- Hàm copy 1 sheet có sẵn tới vị trí cuối cùng trong workbook.

- Hàm hiện 1 sheet đã định trước mỗi khi mở file excel này lên.

Mong các a c hướng dẫn giúp ạ.

E cám ơn các a c ạ. :D
1. Mỗi khi mở, Excel tự động chọn sheet Menu (có CodeName là Sheet1):
PHP:
Sub Auto_Open()
    Sheet1.Activate
End Sub
2. Mỗi khi click vào mã công trình trên sheet ChiTiet thì sẽ liên kết tới sheet tương ứng (code áp dụng cho sheet ChiTiet):
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Or Intersect(Target, [A4:A65536]) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Sheets(Target.Value).Select
End Sub
3. Lập code Tạo công trình:
- Tạo sẵn các công thức để lấy tên công trình và địa điểm tại các sheet TongHop và ChiTiet (bạn tham khảo trong file, tại các cột ẩn trên 2 sheet này, trên hàng 1, sau nút Trở về)
- Viết code (những vị trí màu đỏ ở cuối mỗi câu lệnh là giải thích ý nghĩa của câu lệnh để bạn hiểu):
PHP:
Sub TaoCongTrinh()
    With Sheet2
        If .[E3] = "" Then MsgBox "Ban chua nhap Ma cong trinh.": .[E3].Select: Exit Sub
        Sheet5.Copy after:=Sheets(Sheets.Count) "Copy sheet Mau toi cuoi cung"
        On Error GoTo Err
        Sheets(Sheets.Count).Name = .[E3] "Doi ten sheet vua copy theo Ma cong trinh"
        Sheets(Sheets.Count).[G2] = .[E3] "Ghi Ma cong trinh vao o G2"
        Sheet3.[C65536].End(3).Offset(1) = .[E3] "Ghi Ma cong trinh vao sheet TongHop"
        Sheet3.[C65536].End(3).Offset(, -1) = Sheet3.[C65536].End(3).Offset(-1, -1) + 1 "Dien STT"
        Sheet3.[H1:I1].Copy Sheet3.[C65536].End(3).Offset(, 1) "Copy cong thuc lay Ten CT va Dia chi"
        Sheet4.[A65536].End(3).Offset(1) = .[E3] "Ghi Ma cong trinh vao sheet ChiTiet"
        Sheet4.[F1:G1].Copy Sheet4.[A65536].End(3).Offset(, 1) "Copy cong thuc lay Ten CT va Dia chi"
    End With
    Exit Sub
Err:
    MsgBox "Ten sheet da ton tai hoac khong hop le."
    Application.DisplayAlerts = False
    Sheets(Sheets.Count).Delete "Xoa sheet Mau vua copy"
    Application.DisplayAlerts = True
End Sub
Bạn tham khảo trong file nhé!
 

File đính kèm

Upvote 0
Em cám ơn anh rất nhiều, đã hướng dẫn và giải thích rất dễ hiểu để e có thể tùy biến theo ý mình :D

Nhưng sau khi ngâm cứu và sử dụng thử, e thấy có lỗi phát sinh như thế này:

- Khi mình xóa 1 sheet công trình đã tạo thì ở trong sheet ChiTiet vẫn còn thông tin về công trình đấy, khi ấn vào thì bị lỗi...
- Khi mình đổi tên 1 sheet đã tạo thì trong sheet ChiTiet và TongHop chưa update được tên của sheet đấy.
- Những Sheet tự tạo thêm bằng Insert\Worksheet cũng ko được liệt kê vào trong sheet ChiTiet và TongHop

vậy có cách nào để khắc phục ko ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom