Hỏi code cho Phím tắt (hot key) khi nhấn đúp (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vuminh1601

Thành viên thường trực
Tham gia
7/9/07
Bài viết
336
Được thích
354
Nghề nghiệp
Kế toán
Các ACE cho mình hỏi. Bây giờ mình muốn khai báo phím tắt là Ctrl + CC (tức là giữ Ctrl và ấn đúp phím C 2 lần để thực hiện một lệnh khác)

Ví dụ:
Thứ nhất:
Bình thường ấn Ctrl + C = Copy nhưng mình muốn ấn Ctrl + CC = Copy and PasteValues ( Tức là
copy và đồng thời dán giá trị vào vùng hiện hành.
Thứ hai:
Bình thường ấn Ctrl + Left = End(xlToLeft) nhưng mình muốn
ấn Ctrl + Shift + Left = thì giá trị ô hiện hành giảm bớt đi một số đằng sau dấu phầy.
Vd: Ô hiện hành là 12345,673 ấn Ctrl + Shift + Left sẽ bằng 12345,67 và
Ctrl + Shift + Left + Left sẽ bằng 12345,8

Tương tự Ctrl + Right = End(xlToRight) nhưng mình muốn ấn Ctrl + Shift + Right sẽ tăng thêm một số sau dấu phẩy.

Có ai biết Code làm được việc này không? giúp mình với.
 
Lần chỉnh sửa cuối:
Các ACE cho mình hỏi. Bây giờ mình muốn khai báo phím tắt là Ctrl + CC (tức là giữ Ctrl và ấn đúp phím C 2 lần để thực hiện một lệnh khác)

Ví dụ:
Thứ nhất:
Bình thường ấn Ctrl + C = Copy nhưng mình muốn ấn Ctrl + CC = Copy and PasteValues ( Tức là
copy và đồng thời dán giá trị vào vùng hiện hành.
Cái này chắc không được! Có chăng là Ctrl + Shift + C
Thứ hai:
Bình thường ấn Ctrl + Left = End(xlToLeft) nhưng mình muốn
ấn Ctrl + Shift + Left = thì giá trị ô hiện hành giảm bớt đi một số đằng sau dấu phầy.
Vd: Ô hiện hành là 12345,673 ấn Ctrl + Shift + Left sẽ bằng 12345,67 và
Ctrl + Shift + Left + Left sẽ bằng 12345,8
.
Không hiểu chổ màu đỏ! Tại sao từ 12345,673 lại trở 12345,8 vậy?
Ngoài ra, có lẽ cũng không gán được phím mũi tên làm phím tắt đâu ---> Chọn 1 ký tự nào đó thay thế đi
Tương tự Ctrl + Right = End(xlToRight) nhưng mình muốn ấn Ctrl + Shift + Right sẽ tăng thêm một số sau dấu phẩy..
Cái vụ GIẢM thì còn hiểu. Còn TĂNG thì TĂNG làm sao? Sao bạn không cho ví dụ
Chẳng hạn số 12345, khi tăng lên sẽ ra bi nhiêu?
 
Cái này chắc không được! Có chăng là Ctrl + Shift + C

Không hiểu chổ màu đỏ! Tại sao từ 12345,673 lại trở 12345,8 vậy?
Ngoài ra, có lẽ cũng không gán được phím mũi tên làm phím tắt đâu ---> Chọn 1 ký tự nào đó thay thế đi

Cái vụ GIẢM thì còn hiểu. Còn TĂNG thì TĂNG làm sao? Sao bạn không cho ví dụ
Chẳng hạn số 12345, khi tăng lên sẽ ra bi nhiêu?

Nhấn 2 lần một phím như vậy chắc là không ổn rùi bác nhỉ. Thôi theo bác Ctrl + Shitft + C vậy

Không hiểu chổ màu đỏ! Tại sao từ 12345,673 lại trở 12345,8 vậy?
Chỗ này đúng là em sai. Thay số 8 bằng số 7 ah.

Cái vụ tăng thêm số đằng sau dấu phẩy gọi lại là lấy thêm số đằng sau dấu phẩy cho dễ hiểu vậy

Em Ví dụ: 123.456/7,8 = 15.828 (đang mặc định làm tròn số) muốn
Lấy thêm một số đằng sau dấu phẩy = 15.827,6 lấy thêm tiếp số đằng sau dấu phẩy: 15.827,69 lấy thêm tiếp số đằng sau dấu phẩy: 15.827,692
Nếu dấu mũi tên không đựoc thì dùng dấy > và < có được không bác.

Em nói thật với bác là em đang tìm hiểu các phím tắt để tạo một cái form bổ sung các phím tắt mà Excel chưa hỗ trợ. Nhờ bác và mọi người giúp cho.

Ví dụ:
.Merge
.UnMerge
.PasteValues
.AutoFit
.FreezePanes = True
.FreezePanes = False
.......
Còn rất nhiều nữa vẫn chưa được hỗ trợ phím tắt cấp 1 (bấm phát chạy luôn, chứ không như ấn phím Alt trong office 2007 rồi bấm một loạt các phím tiếp theo)
 
Gữi bạn 1 ví dụ về tăng giảm số thập phân như sau
PHP:
Sub Dec_Increase()
  CommandBars("Formatting").FindControl(1, 398).Execute
End Sub
PHP:
Sub Dec_Decrease()
  CommandBars("Formatting").FindControl(1, 399).Execute
End Sub
Gán phím tắt Ctrl + Shift + I cho sub Dec_Increase
Gán phím tắt Ctrl + Shift + D cho sub Dec_Decrease
Giờ chọn 1 cell hoặc 1 vùng rồi bấm phím tắt thử xem
------------
Mấy món khác cũng tương tự! Cứ viết code thực thi yêu cầu rồi gán cho nó 1 phím tắt nào đó! Thế thôi
 
Gữi bạn 1 ví dụ về tăng giảm số thập phân như sau
PHP:
Sub Dec_Increase()
  CommandBars("Formatting").FindControl(1, 398).Execute
End Sub
PHP:
Sub Dec_Decrease()
  CommandBars("Formatting").FindControl(1, 399).Execute
End Sub
Gán phím tắt Ctrl + Shift + I cho sub Dec_Increase
Gán phím tắt Ctrl + Shift + D cho sub Dec_Decrease
Giờ chọn 1 cell hoặc 1 vùng rồi bấm phím tắt thử xem
------------
Mấy món khác cũng tương tự! Cứ viết code thực thi yêu cầu rồi gán cho nó 1 phím tắt nào đó! Thế thôi


Bác ndu ơi bác không cho em cái code gán phím luôn với Em làm như này không được
Sub Dec_Increase()
''Gán phím t?t Ctrl + Shift + I
Application.OnKey = "vbKeyControl + vbKeyShift + vbKeyI"
CommandBars("Formatting").FindControl(1, 398).Execute
End Sub
hơn nữa code của bác em cũng chảng hiểu được, nhưng vẫn làm theo. Nếu thêm số thập phân đến hết số không thì nó nhảy số ra linh tinh quá
Làm thế nào đến khi thêm số không đằng sau dấu phẩy chỉ lấy 2 số thôi còn đằng sau số thập phân thì thôi
123.456,00 Nếu muốn có thể lấy 2 số 0 không này
123.456,780 Nếu gặp số không màu đỏ thì không lấy nữa
 
Bác ndu ơi bác không cho em cái code gán phím luôn với Em làm như này không được

hơn nữa code của bác em cũng chảng hiểu được, nhưng vẫn làm theo. Nếu thêm số thập phân đến hết số không thì nó nhảy số ra linh tinh quá
Làm thế nào đến khi thêm số không đằng sau dấu phẩy chỉ lấy 2 số thôi còn đằng sau số thập phân thì thôi
123.456,00 Nếu muốn có thể lấy 2 số 0 không này
123.456,780 Nếu gặp số không màu đỏ thì không lấy nữa
Trời ơi! Phím tắt bạn tự gán bằng tay đi chứ
- Bấm Alt + F8
- Chọn tên macro
- Bấm nút Options rồi gõ phím tắt vào

untitled.JPG


----------
Còn bạn nói
Nếu thêm số thập phân đến hết số không thì nó nhảy số ra linh tinh quá
Cụ thể là LINH TINH thế nào ---> Tôi thử bình thường bạn à!
 

File đính kèm

Lần chỉnh sửa cuối:
Cụ thể là LINH TINH thế nào ---> Tôi thử bình thường bạn à!
Ở máy công ty E chạy nó bị linh tinh số. Như hình

loi.JPG

Nhưng về nhà E chạy thử thì lại OK. Lỗi trên có phải do định dạng không?

Cái vụ gán phím bằng Option thì Ok.
nhưng E được biết VBA có code gán phím tắt mà. Bác chỉ E với Thank bác
 
Ở máy công ty E chạy nó bị linh tinh số. Như hình
Nhưng về nhà E chạy thử thì lại OK. Lỗi trên có phải do định dạng không?
c
Sai sót nếu có tôi nghĩ chỉ có thể là định dạng dấu thập phân khác nhau trên mổi máy chăng? ---> Hãy thử lại với số nguyên xem, chẳng hạn với công thức =12345/678
nhưng E được biết VBA có code gán phím tắt mà. Bác chỉ E với Thank bác
Thì cũng Onkey giống như bạn làm đấy! Có điều Onkey phải chạy trước!
Ví dụ muốn gán Ctrl + Shift + I cho Sub Dec_Increase thì bạn phải tạo 1 Sub mới
PHP:
Sub AssignHotkey()
  Application.OnKey "^+I", "Dec_Increase"
End Sub
Chạy sub AssignHotkey xong là có thể dùng phím tắt rồi đấy
Để việc gán phím tắt diển ra 1 cách tự động khi file khởi động, sửa tên AssignHotkey thành Auto_Open
 
Sai sót nếu có tôi nghĩ chỉ có thể là định dạng dấu thập phân khác nhau trên mổi máy chăng? ---> Hãy thử lại với số nguyên xem, chẳng hạn với công thức =12345/678

Thì cũng Onkey giống như bạn làm đấy! Có điều Onkey phải chạy trước!
Ví dụ muốn gán Ctrl + Shift + I cho Sub Dec_Increase thì bạn phải tạo 1 Sub mới
PHP:
Sub AssignHotkey()
Application.OnKey "^+I", "Dec_Increase"
End Sub
Chạy sub AssignHotkey xong là có thể dùng phím tắt rồi đấy
Để việc gán phím tắt diển ra 1 cách tự động khi file khởi động, sửa tên AssignHotkey thành Auto_Open

Anh ndu! thế có code để thôi không dùng phím tắt đã gán không?
 
Anh ndu! thế có code để thôi không dùng phím tắt đã gán không?
Giả sử bạn đã gán Ctrl + Shift + I cho 1 sub nào đó! Giờ chạy code này:
PHP:
Sub DesHotkey()
Application.OnKey "^+I", ""
End Sub
Là xem như phím tắt Ctrl + Shift + I sẽ bị huỷ
Mấy trò này đúng ra các bạn nên tự thí nghiệm thì hơn (vì trước khi bạn hỏi, tôi cũng chưa nghĩ tới ---> Mới vừa thí nghiệm xong đấy ---> Đoán)
 
Web KT

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

Back
Top Bottom