[Help] Chọn Sheet trong Menu Ribbon ???

Liên hệ QC

M@trixs

Thành viên thường trực
Tham gia
3/3/11
Bài viết
257
Được thích
335
VD như M@trixs có tạo 1 bảng tính với 5 Sheet. M@trixs đã dùng công cụ "Custom UI Editor For Microsoft Office" (CUE) để tạo 1 menu Ribbon riêng với 5 Button tương ứng với 5 sheet đó. Vậy làm cách nào để khi click vào Button 1 thì chọn Sheet 1, Click Button 2 thì chọn Sheet 2....

Với lại M@trixs cũng muốn khi chọn một Sheet bất kỳ thì 4 Sheet kia sẽ bị ẩn đi. M@trixs có làm nhưng không đạt kết quả. Mọi người góp ý với nhé !

Mong mọi người giúp đỡ giùm !!!
Chân thành cảm ơn nhiều !!!

P/s: M@trixs có gởi file đính kèm, mọi người tải về xem nhé !!!
 

File đính kèm

  • Menu.rar
    122.2 KB · Đọc: 32
Lần chỉnh sửa cuối:
VD như M@trixs có tạo 1 bảng tính với 5 Sheet. M@trixs đã dùng công cụ "Custom UI Editor For Microsoft Office" (CUE) để tạo 1 menu Ribbon riêng với 5 Button tương ứng với 5 sheet đó. Vậy làm cách nào để khi click vào Button 1 thì chọn Sheet 1, Click Button 2 thì chọn Sheet 2....

Mong mọi người giúp đỡ giùm !!!
Chân thành cảm ơn nhiều !!!

Bạn dùng 1 onAction rồi trong code kiểm tra theo ID xem button nào được nhấn để xử lý

Mã:
<menu id="mySecretMenu" label="Hay chon sheet">
<button id="button1" label="Chon sheet 1" onAction="SecretAction"/>
...
<button id="button5" label="Chon sheet 5" onAction="SecretAction"/>
</menu>

Sub SecretAction(control As IRibbonControl)
Dim s As String
    s = Replace(control.ID, "button", "sheet")
    Sheets(s).Select
End Sub

hoặc 

Sub SecretAction(control As IRibbonControl)
    Select Case control.ID
        Case "button1": Sheets("sheet1").Select
        ...
        Case "button5": Sheets("sheet5").Select
    End Select
End Sub
 
Lần chỉnh sửa cuối:
Bạn dùng 1 onAction rồi trong code kiểm tra theo ID xem button nào được nhấn để xử lý

Mã:
<menu id="mySecretMenu" label="Hay chon sheet">
<button id="button1" label="Chon sheet 1" onAction="SecretAction"/>
...
<button id="button5" label="Chon sheet 5" onAction="SecretAction"/>
</menu>

Sub SecretAction(control As IRibbonControl)
Dim s As String
    s = Replace(control.ID, "button", "sheet")
    Sheets(s).Select
End Sub

hoặc 

Sub SecretAction(control As IRibbonControl)
    Select Case control.ID
        Case "button1": Sheets("sheet1").Select
        ...
        Case "button5": Sheets("sheet5").Select
    End Select
End Sub

Hôm trước quên đưa file lên. Bạn tải file đính kèm về giúp mình với nha !
 
Hôm trước quên đưa file lên. Bạn tải file đính kèm về giúp mình với nha !

Bạn nói có 5 nút nhưng thực tế có 10. Nhưng thôi không sao vì có những nút cùng một onAction. Chỉ có điều trong XML bạn có 4 onAction khác nhau là "ThongTinDuAn", "BieuDo", "TienDo", "HoSo" trong khi đó trong code bạn có thêm
Mã:
Sub HopDong(Control As IRibbonControl)

Bạn tự bịa thêm à?
Mà XML của bạn lộn xộn quá. Lý ra nhấn nút "Hợp đồng ký kết" thì phải mở sheet "HopDong" nhưng trong XML thì nó được gán cho onAction = "BieuDo", mà "BieuDo" thì lại mở sheet "BieuDo" chứ lại không mở sheet "HopDong". Tương tự như vài nút khác.

Tổng cộng bạn có 13 sheet. Bạn định chỉ mở 5 sheet? Nếu thế thì bạn hãy liệt kê: Từng button (id của nó) và cái button đó nó sẽ mở sheet tên gì. 100 button cũng được nhưng phải liệt kê ra đây từng button (id) và mỗi button sẽ dùng để mở sheet tên gì.

Tôi không có thời gian để dò rồi đoán ý của bạn được.

Mà nếu bạn muốn thì bạn tạo k button với k onAction thì lúc đó bạn biết onAction nào thì mở sheet nào.
Còn không bạn có thể tạo k button với 1 onAction duy nhất và lúc này thì trong code của onAction bạn duyệt id (control.id) để mở sheet tương ứng với id đó. Thế thôi.
 
Web KT

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

Back
Top Bottom