Cho hỏi cách nào hủy bỏ chức năng cắt Cell của phím tắt Ctrl_x trong Excel vậy ?

Liên hệ QC

cmc_bluesky

Thành viên mới
Tham gia
16/2/11
Bài viết
13
Được thích
0
Mình đang làm kế toán trên Excel mà thấy phím tắt Ctrl_x bất tiện quá, mình muốn hủy bỏ chức năng cắt
của Ctrl_x trong Excel thì phải làm cách nào, bạn nào biết chỉ giúp với, mình xin cảm ơn !
 
Tôi nghĩ là không thể được vì nó đã được thiết kế trong bộ office rồi.
 
Upvote 0
Mình đang làm kế toán trên Excel mà thấy phím tắt Ctrl_x bất tiện quá, mình muốn hủy bỏ chức năng cắt
của Ctrl_x trong Excel thì phải làm cách nào, bạn nào biết chỉ giúp với, mình xin cảm ơn !
Có thể được nếu dùng code VBA
Ví dụ thế này:
PHP:
Sub Main()
  Application.OnKey "^x", "DisableCUT"
End Sub
PHP:
Sub DisableCUT()
  Application.CutCopyMode = 0
End Sub
Chạy sub Main rồi thử phím Ctrl + x xem sao
 
Upvote 0
Bình thường thì không dược nhưng tôi đã thử Code của bác Ndu96081631 lại được? bái phục bác? nhưng tại sao vậy bác?
 
Upvote 0
Bình thường thì không dược nhưng tôi đã thử Code của bác Ndu96081631 lại được? bái phục bác? nhưng tại sao vậy bác?
Đã dùng code để vô hiệu hóa chức năng phím tắt mà bạn hỏi tại sao vậy thì chắc có "Chúa" mới trả lời được
Mà nghĩ cũng lạ: Không ưa dùng thì thôi sao lại vô hiệu hóa nó?
 
Upvote 0
Bình thường thì không dược nhưng tôi đã thử Code của bác Ndu96081631 lại được? bái phục bác? nhưng tại sao vậy bác?
Thì tôi đã dùng Onkey gán phím tắt Ctrl + X cho 1 macro khác rồi nên khi bạn bấm tổ hợp phím này thì Excel sẽ ưu tiên chạy cái mà ta thiết lập chứ không chạy theo chức năng mặc định
Lúc bấm Ctrl + x, lập tức sub DisableCUT sẽ được kích hoạt, và code này hủy luôn khả năng CutCopy (tương đương với việc ta bấm phím ESC)
Đơn giản thôi mà
Mà nghĩ cũng lạ: Không ưa dùng thì thôi sao lại vô hiệu hóa nó?
Ví các phím Z, X, C, V nằm gần nhau... khi kết hợp với phím Ctrl mà lỡ bấm nhầm sang phím khác thì cũng rất dễ gây tai hại... Thế nên yêu cầu cũng hợp lý thôi (nếu như người ta thường xuyên thao tác với các phím này)
 
Upvote 0
Có thể được nếu dùng code VBA
Ví dụ thế này:
PHP:
Sub Main()
  Application.OnKey "^x", "DisableCUT"
End Sub
PHP:
Sub DisableCUT()
  Application.CutCopyMode = 0
End Sub
Chạy sub Main rồi thử phím Ctrl + x xem sao

Từng bước làm như thế nào Bác giúp e luôn nhé, VBA e mù tịt ah, E cảm ơn bác ! (hai đoạn mã trong hai khung không biết lấy mã nào hic)
 
Upvote 0
Từng bước làm như thế nào Bác giúp e luôn nhé, VBA e mù tịt ah, E cảm ơn bác ! (hai đoạn mã trong hai khung không biết lấy mã nào hic)
Làm vầy:
1> Khởi động Excel
2> Vào menu Tools\Macro\Security và check vào mục "Medium... " --> OK
3> Bấm Alt + F11 để vào cửa số soạn code
4> Trong cửa sổ soạn code, vào menu Insert chọn mục Module
5> Copy cả 2 đoạn code của tôi ở trên và dán vào cửa số module vùa chèn (bên phải)
6> Bấm Alt + Q để trở về bảng tính Excel
7> Bấm Alt + F8, chọn vào tên "Main" rồi bấm nút Run
----------------
Lưu ý:
- Nếu file này được lưu lại thì kể từ lần sau, khi khởi động file phải bấm nút Enable Macros ---> Nếu muốn cho code chạy, thực hiện bước 7
- Nếu muốn code chạy tự động khi mở file, sửa tên Sub Main() thành Sub Auto_Open()
- Hướng dẫn tại bước 1 và 2 là dựa trên Excel 2003
 
Upvote 0
Em đã làm thử Macro nhưng phải vào Tools-->Macro cho chạy Macro đoạn mã mới có hiệu lực, khi thoát file đó và mở lại thì mã không còn hiệu lực nữa.
Bác giúp e cách nào mà đoạn mã trên chỉ có hiệu lực cho 1 file Excel (vd:file A) đó thôi không có hiệu lực với toàn bộ Excel (là những file khác mở đồng thời), và mã có hiệu mỗi khi mở file đó . E cảm ơn bác
 
Upvote 0
Em đã làm thử Macro nhưng phải vào Tools-->Macro cho chạy Macro đoạn mã mới có hiệu lực, khi thoát file đó và mở lại thì mã không còn hiệu lực nữa.
Bác giúp e cách nào mà đoạn mã trên chỉ có hiệu lực cho 1 file Excel (vd:file A) đó thôi không có hiệu lực với toàn bộ Excel (là những file khác mở đồng thời), và mã có hiệu mỗi khi mở file đó . E cảm ơn bác
Vậy thì phải sửa lại:
1> Trong module, xóa sub Main, chừa lại Sub DisableCUT
2> Trong cửa sổ soạn code, double click vào mục Thisworkbook... nhìn khung bên phải và chèn code này vào:
PHP:
Private Sub Workbook_Activate()
  Application.OnKey "^x", "DisableCUT"
End Sub
PHP:
Private Sub Workbook_Deactivate()
  Application.OnKey "^x"
End Sub

untitled1.JPG
 

File đính kèm

Upvote 0
Sẵng đây cho hỏi bác , nếu e có 1 đoạn mã khác để thực thi 1 công việc khác nữa thì vào module khác viết được không?
hình như đoạn mã này không có hiệu lực (code mới này nếu Add-in file thì vẫn được)
 
Upvote 0
Sẵng đây cho hỏi bác , nếu e có 1 đoạn mã khác để thực thi 1 công việc khác nữa thì vào module khác viết được không?
hình như đoạn mã này không có hiệu lực (code mới này nếu Add-in file thì vẫn được)
Bạn cứ viết vào module thoải mái... Đương nhiên bạn gọi cái nào thì cái nấy chạy thôi
Còn vụ Add-In thì bạn xem lại nha... Vì theo bạn nói rằng chỉ muốn code disable Ctrl + x có tác dụng trên 1 file nào đó ---> Nếu chuyển thành Add-In thì hóa ra nó có tác dụng trên toàn Excel sao?
 
Upvote 0
Em có 1 đoạn mã thế này:

Function VND(BaoNhieu)
Dim KetQua, SOTIEN, Nhom, Chu, S1, S2, S3, Dich As String
Dim N, J, Vitri As Byte, S As Double, Hang, Doc, Dem
If BaoNhieu = 0 Then
KetQua = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) > 1E+15 Then
KetQua = "Soá quaù lôùn"
Else
GoSub LamViecDi
End If
End If
VND = UCase(Left(KetQua, 1)) + Mid(KetQua, 2)
Exit Function
LamViecDi:
If BaoNhieu < 0 Then
KetQua = "Tröø" & Space(1)
Else
KetQua = Space(0)
End If
SOTIEN = Format(Abs(BaoNhieu), "############0.00")
SOTIEN = Right(Space(15) & SOTIEN, 18)
Hang = Array("None", "traêm", "möôi", "gì ñoù")
Doc = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "chaün")
Dem = Array("None", "moät", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For N = 1 To 6
Nhom = Mid(SOTIEN, N * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If N = 5 Then Chu = "ñoàng" & Space(1) Else Chu = Space(0)
Case ".00"
Chu = "chaün"
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = Doc(N)
For J = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, J, 1))
If S > 0 Then Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
Select Case J
Case 2 And S = 1
Dich = "möôøi" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "1" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And N = 5) Then Dich = "leû" & Space(1)
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "möôi moät", 1)
KetQua = KetQua & Chu
End If
Next N
Return
End Function

Sau khi e copy đoạn mã của bác vào module1 và This wordsheet thì đã có hiệu lực với Ctrl-x. E tiếp tục copy đoạn mã trên vào module2 mà nó không chạy :), nó chỉ có hiệu lực với Ctrl-x ah, mà đoạn mã trên e làm file.xla rồi add-in thì vẫn chạy bình thường.

Bây giờ e muốn đoạn mã trên chỉ có hiệu lực với file excel mà đã có đoạn mã vô hiệu Ctrl-x của bác thôi thì làm cách nào vậy. e cảm ơn bác
 
Upvote 0
Em có 1 đoạn mã thế này:
PHP:
Function VND(BaoNhieu)
      '..............
  '................
End Function

Sau khi e copy đoạn mã của bác vào module1 và This wordsheet thì đã có hiệu lực với Ctrl-x. E tiếp tục copy đoạn mã trên vào module2 mà nó không chạy :), nó chỉ có hiệu lực với Ctrl-x ah, mà đoạn mã trên e làm file.xla rồi add-in thì vẫn chạy bình thường.

Bây giờ e muốn đoạn mã trên chỉ có hiệu lực với file excel mà đã có đoạn mã vô hiệu Ctrl-x của bác thôi thì làm cách nào vậy. e cảm ơn bác
Bạn cứ đưa file đang làm lên đây sẽ hiểu liền thôi
(đừng nói là bạn đã copy Function này và cho vào 2 nơi khác nhau nha)
 
Upvote 0
E nhầm đã làm được rồi hì hì :) cảm ơn bác đã nhiệt tình chỉ dẫn.
 
Lần chỉnh sửa cuối:
Upvote 0
Anh ndu96081631 ơi, làm ơn cho em hỏi còn nếu muốn vô hiệu hoá nút ESC trong excel thì code ra sao vậy anh? Cám ơn anh rất nhiều
 
Upvote 0
Anh ndu96081631 ơi, làm ơn cho em hỏi còn nếu muốn vô hiệu hoá nút ESC trong excel thì code ra sao vậy anh? Cám ơn anh rất nhiều
Lúc đầu tôi định dùng code này
PHP:
Sub Test()
  Application.OnKey "{ESC}", ""
End Sub
Nhưng xem ra chỉ thành công ở 1 mức độ nào đó thôi
Bạn cho hỏi: Bạn muốn vô hiệu hóa ESC với mục đích gì?
 
Upvote 0
Cảm ơn anh rất nhiều... Dạ em định vô hiệu hoá nút Esc là vì em dùng chế độ Full screen cho template của em nhưng nếu nhấn Esc thì nó sẽ thoát ra khỏi Fullscreen mode.. Ko biết có làm được không thưa anh???
 
Upvote 0
anh ndu96081631, em có một đề tài về macro anh vui lòng xem giúp và chỉ dẫn cho em với nhé thưa anh... em kiếm nát nước mầy tuần liền mà ko được thưa anh.. Nó nằm dưới mục "Hỏi đáp về VBA-Macro"... ngàn lần đa tạ anh...
 
Upvote 0
Cảm ơn anh rất nhiều... Dạ em định vô hiệu hoá nút Esc là vì em dùng chế độ Full screen cho template của em nhưng nếu nhấn Esc thì nó sẽ thoát ra khỏi Fullscreen mode.. Ko biết có làm được không thưa anh???
Ủa lạ ta? Không biết bạn dùng Office nào? Còn tôi dùng Office 2003, khi tôi Full Screen và nhấn ESC thì đâu có gì xảy ra chứ
 
Upvote 0
Web KT

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

Back
Top Bottom