Mất menu chuột phải (tự tạo) khi thay đổi hiển thị cửa sổ thành xlPageBreakPreview

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Thái Phúc

Thành viên mới
Tham gia
1/12/18
Bài viết
31
Được thích
2
Giới tính
Nam
Kính chào các anh chị GPE!
Em có đoạn code như sau:
Mã:
Sub AddMenu_ActivateSheet()
    Dim newItem As CommandBarControl
    Dim contextMenu As CommandBar
    Dim strCaption As String
    strCaption = "Test Menu"
    Set contextMenu = Application.CommandBars("Cell")
    On Error Resume Next
    contextMenu.Controls(strCaption).Delete
    On Error GoTo 0
    Set newItem = contextMenu.Controls.Add(Type:=msoControlButton, Before:=1)
    With newItem
        .Caption = strCaption
        .OnAction = "TestMenu"
        .BeginGroup = True
    End With
End Sub
Sub TestMenu()
   MsgBox "Test Menu"
End Sub
Khi Excel chuyển sang chế độ ActiveWindow.View = xlPageBreakPreview thì menu chuột phải em vừa tạo bị mất, ngược lại nếu để chế độ khác thì vẫn bình thường. Vậy anh chị cho em hỏi nguyên nhân và cách khắc phục được không ạ. Em xin cảm ơn !
 
Bạn chạy thủ tục sau sẽ được 2 dòng. Dòng 1 là Commandbar Cell của Normal View và dòng 2 là Commandbar Cell của PageBreak View.
JavaScript:
Sub CellCmdBar()
For Each cb In CommandBars
    If cb.Name = "Cell" Then
        a = a + 1
        Cells(a, 1) = cb.Name
        Cells(a, 2) = cb.Index
    End If
Next
End Sub
Lúc đó bạn thay
Application.CommandBars("Cell")
bằng
Application.CommandBars(<ID>)
ID này thay đổi tùy theo phiên bản của Excel nên phải chạy code để tìm. Chẳng hạn Excel 365 phiên bản tôi đang xài có ID là 38 và 41. Ở phiên bản khác sẽ là số khác

1723972037915.png
 
Upvote 0
Bạn chạy thủ tục sau sẽ được 2 dòng. Dòng 1 là Commandbar Cell của Normal View và dòng 2 là Commandbar Cell của PageBreak View.
JavaScript:
Sub CellCmdBar()
For Each cb In CommandBars
    If cb.Name = "Cell" Then
        a = a + 1
        Cells(a, 1) = cb.Name
        Cells(a, 2) = cb.Index
    End If
Next
End Sub
Lúc đó bạn thay
Application.CommandBars("Cell")
bằng
Application.CommandBars(<ID>)
ID này thay đổi tùy theo phiên bản của Excel nên phải chạy code để tìm. Chẳng hạn Excel 365 phiên bản tôi đang xài có ID là 38 và 41. Ở phiên bản khác sẽ là số khác

View attachment 303235
Em hiểu được rồi. Cảm ơn anh !
 
Upvote 0
Web KT

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

Back
Top Bottom