Bật/tắt chức năng của Excel

Liên hệ QC

chibi

Thành viên tích cực
Thành viên danh dự
Tham gia
10/1/07
Bài viết
1,120
Được thích
622
Muốn bật/tắt một chức năng của Excel? Ví dụ: Bật/tắt chức năng Cut
 
???

chibi đã viết:
Muốn bật/tắt một chức năng của Excel? Ví dụ: Bật/tắt chức năng Cut
Ý bạn là gì nhỉ !
Có phải ý bạn nói về các chức năng giống như Tools/Options/Caculation
Sau đó là Manual/Automatic/Automatic except tables?

Để biết được bạn nên dùng record marco khi chọn các chức năng đó. Sau đó mở ra và xem đoạn mã, sửa lại theo ý của bạn.

Lê Văn Duyệt
 
Upvote 0
Anh Duyệt ơi, ý tôi muốn là khi làm việc với 1 bảng tính thì chức năng Cut của Excel mất tác dụng, sau đó lại có tác dụng với bảng tính khác
 
Upvote 0
Mã:
Sub HoBien1()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
    Application.CommandBars("Cell").Controls(1).Enabled = False
End Sub
Sub HoBien2()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
    Application.CommandBars("Cell").Controls(1).Enabled = True
End Sub
Nếu bạn copy đoạn mã này và thực thi thì chắc có lẻ bạn sẻ thấy tác dụng của nó.
Để cho chức năng này có tác dụng với một bảng tính bạn phải kiểm tra tên của bảng tính.
Ví dụ:
Mã:
If Application.ActiveWorkbook.Name = "MyWB.xls" Then
    Call HoBien1
Else
    Call HoBien2
End If
Và đặt đoạn code trên trong sự kiện Active của Workbook bạn muốn.

Lê Văn Duyệt
 
Upvote 0
levanduyet đã viết:
Mã:
Sub HoBien1()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
    Application.CommandBars("Cell").Controls(1).Enabled = False
End Sub
Sub HoBien2()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
    Application.CommandBars("Cell").Controls(1).Enabled = True
End Sub
Nếu bạn copy đoạn mã này và thực thi thì chắc có lẻ bạn sẻ thấy tác dụng của nó.

Gửi anh Duyệt: Tôi đã làm như anh hướng dẫn nhưng không thấy có thay đổi gì (Sau khi chạy Macro HoBien1). Anh có thể giải thích rõ thêm được không? Cảm ơn anh.
 
Upvote 0
Chắc có lẻ máy bạn có vấn đề.
Mục đích của Hobien1, nhằm làm cho menu cut của Excel mất tác dụng.
Còn Hobien2 thì ngược lại.

Lê Văn Duyệt
 
Upvote 0
Ngoài vấn đề anh Duyệt nêu ra, tôi nói thêm về menu "Cut".
Menu "Cut" chỉ sáng khi Excel nhận thấy khối dữ liệu có thể cut được. Nếu các ô (cells) bị protect thì đương nhiên chức năng Cut không thể hoạt động được, khi đó menu "Cut" là Disable. Chúng ta cố tình gán Enable=True cũng không giải quyết được gì.
 
Upvote 0
Cảm ơn anh Duyệt. Khi thực hiện Hobien1 thì chức năng Cut trên hệ thống menu bị tắt nhưng nếu thực hiện bằng biểu tượng trên thanh công cụ hoặc phím Ctrl+C vẫn hoạt động bình thường. Có cách nào tắt hết được không?
 
Upvote 0
Vâng, vậy vấn đề là ngoài việc Disable chức năng trên menu, chúng ta còn phải thực hiện tương tự cho các Toolsbar và Shortcut menu.
Như vậy thì đoạn lệnh sẽ hoàn hảo hơn.
Bạn nào có đoạn code xin gởi cho chibi.

Lê Văn Duyệt
 
Upvote 0
Chẳng lẽ bó tay?!
 
Upvote 0
Sao lại phải bó tay nhỉ?
Mã:
Sub HoBien1()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
    Application.CommandBars("Cell").Controls(1).Enabled = False
    'Dong lenh sau se vo hieu hoa ShortcutKey cña lenh CUT
[B][COLOR=red]    Application.OnKey "^x", "Tat"
[/COLOR][/B]End Sub
Sub HoBien2()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
    Application.CommandBars("Cell").Controls(1).Enabled = True
End Sub
 
Public Sub Tat()
End
End Sub
Dĩ nhiên bạn muốn vô hiệu hoá lệnh nào thì bạn phải biết shortcutkey của lệnh đó
 
Upvote 0
Sub HoBien1()
Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
Application.CommandBars("Cell").Controls(1).Enabled = False
'Dong lenh sau se vo hieu hoa ShortcutKey cña lenh CUT
Application.OnKey "^x", "Tat"
End Sub
Tôi đã chạy thử đoạn code trên trong Excel2003, kết quả là biểu tượng Cut trên thanh công cụ và Ctrl+X vẫn hoạt động
 
Upvote 0
Bạn thử lại nhé
Mã:
Sub Tat_LenhCUT()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
    Application.CommandBars("Cell").Controls(1).Enabled = False
    Dim objObject
    For Each objObject In Application.CommandBars("Standard").Controls
        If objObject.Caption = "Cu&t" Then objObject.Enabled = False
    Next
    'Dong lenh sau se vo hieu hoa ShortcutKey cua lenh CUT
    Application.OnKey "^x", "Tat"
End Sub
Sub Bat_LenhCUT()
    Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
    Application.CommandBars("Cell").Controls(1).Enabled = True
    Dim objObject
    For Each objObject In Application.CommandBars("Standard").Controls
        If objObject.Caption = "Cu&t" Then objObject.Enabled = True
    Next
End Sub
 
Public Sub Tat()
    Exit Sub
End Sub
 
Upvote 0
Bật tắt chức năng Copy/Cut

chibi đã viết:
Muốn bật/tắt một chức năng của Excel? Ví dụ: Bật/tắt chức năng Cut

Chibi thử cách này xem thế nào :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Thân !
 
Upvote 0
Cách của tedaynui đơn giản mà hiệu quả.
Nhân đây xin hỏi muốn tắt chức năng Format Painter ?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom