viết code xong nhưng không thực thi lệnh

takuda_khoad

Member
Hội viên mới
các bạn xin chỉ giáo
mình viết code để khi nhấn phím ENTER (phím số) thì nó sẽ chuyển sang phải một ô , nhưgn viết xong chẳng thấy nó thực hành
sub setup_onkey()
application.onkey "ENTER","[RIGHT_SUB"]
end sub
sub RIGHT_SUB()
activecell.offset(1,0).active
end sub
không biêt đoạn code của mình có sai chỗ nào không?
cả nhà có ai biết có lớp nào dạy VBA cho excel không , chỉ dùm mình với?mình đang ở HCM
 
Sửa lần cuối:
Ðề: viết code xong nhưng không thực thi lệnh

Active là để khai báo trước các lệnh sau đó sẽ tác động lên đối tượng active.
Bạn phải dùng select để điều khiển việc con nháy nhảy sang ô kế bên.
Select và Active khác nhau tương tự như động từ và tính từ vậy đó.

sub RIGHT_SUB()
activecell.offset(1,0).select
end sub
 
Ðề: viết code xong nhưng không thực thi lệnh

mình làm như hướng dẫn rồi mà vẫn chưa được , muontennguoi có thể viết code và gửi file lên cho mình xem tham khảo không?
 
Ðề: viết code xong nhưng không thực thi lệnh

các bạn xin chỉ giáo
mình viết code để khi nhấn phím ENTER (phím số) thì nó sẽ chuyển sang phải một ô , nhưgn viết xong chẳng thấy nó thực hành
sub setup_onkey()
application.onkey "ENTER","[RIGHT_SUB"]
end sub
sub RIGHT_SUB()
activecell.offset(1,0).active
end sub
không biêt đoạn code của mình có sai chỗ nào không?
cả nhà có ai biết có lớp nào dạy VBA cho excel không , chỉ dùm mình với?mình đang ở HCM

ActiveCell.Offset(0,1).Select
 
Ðề: viết code xong nhưng không thực thi lệnh

sub setup_onkey()
application.onkey "{ENTER}","RIGHT_SUB"
end sub
sub RIGHT_SUB()
activecell.offset(0,1).select
end sub

Sau khi bạn chạy macro setup_onkey() thì onkey mới có tác dụng.
 
Ðề: viết code xong nhưng không thực thi lệnh

Cái code này tôi thấy nó kỳ kỳ thế nào ấy. Thế ta cho nó vào sự kiện gì để nó tự kích hoạt đây?
Code nằm trong UserForm thì họa chăng!
 
Ðề: viết code xong nhưng không thực thi lệnh

Cái code này tôi thấy nó kỳ kỳ thế nào ấy.

Thông thường người ta dùng Onkey để tạo các phím nóng. Các phím nóng tự khai báo thuờng sử dụng là F5 đến 12 hoặc các phím Ctrl + ...
Ở đây dùng phím {ENTER} như là 1 ví dụ mẫu.

Thế ta cho nó vào sự kiện gì để nó tự kích hoạt đây?
Code nằm trong UserForm thì họa chăng!

Muốn nó tự kích hoạt thì đưa nó vào macro Auto_Open(). Tuy nhiên điều đó làm nó trông giống như 1 con virus.
Tốt hơn hết là hãy để người dùng tự quyết định khi nào thì chạy. Gắn nó vào 1 cái nút nào đó trên form.
 
Sửa lần cuối:
Ðề: viết code xong nhưng không thực thi lệnh

sub setup_onkey()
application.onkey "{ENTER}","RIGHT_SUB"
end sub
sub RIGHT_SUB()
activecell.offset(0,1).select
end sub

Sau khi bạn chạy macro setup_onkey() thì onkey mới có tác dụng.

mình làm như bạn nói mà vẫn khôgn được , khi mình nhấn ENTER thì nó hiện ra macro RIGHT_SUB can not be found , như vậy là sao?làm ơn chỉ mình với
 
Ðề: viết code xong nhưng không thực thi lệnh

Muốn nó tự kích hoạt thì đưa nó vào macro Auto_Open(). Tuy nhiên điều đó làm nó trông giống như 1 con virus.
Tốt hơn hết là hãy để người dùng tự quyết định khi nào thì chạy. Gắn nó vào 1 cái nút nào đó trên form.
Thì mình thấy kỳ là kỳ chổ này đây!
Thêm nữa:
- Enter mà chỉ xuống dòng hoặc dịch sang phải thì cần gì code nhỉ? (Excel Options có thể tự chỉnh đúng yêu cầu này)
- Cứ cho rằng đây chỉ là ví dụ minh họa, trên thực tế người ta làm 1 việc khác thì chẳng lẽ code chạy rồi ta không dùng được phím Enter nữa sao?
Trên Form người ta "bẫy" các phím mới có vẻ hợp lý hơn!
------------
mình làm như bạn nói mà vẫn khôgn được , khi mình nhấn ENTER thì nó hiện ra macro RIGHT_SUB can not be found , như vậy là sao?làm ơn chỉ mình với
Sao lại không được nhỉ? Bạn có cho chúng vào 1 module không vậy? Tôi thử thấy chạy tốt mà
 
Ðề: viết code xong nhưng không thực thi lệnh

- Enter mà chỉ xuống dòng hoặc dịch sang phải thì cần gì code nhỉ? (Excel Options có thể tự chỉnh đúng yêu cầu này)
- Cứ cho rằng đây chỉ là ví dụ minh họa, trên thực tế người ta làm 1 việc khác thì chẳng lẽ code chạy rồi ta không dùng được phím Enter nữa sao?
Trên Form người ta "bẫy" các phím mới có vẻ hợp lý hơn!

Onkey {ENTER} chỉ có tác dụng cho phím Enter bên bàn phím số.
Phím Enter bên bàn phím chữ vẫn hoạt động theo Excel Option.

Việc người ta bẫy phím Enter đó để làm gì, trong tình huống nào... thì đó là chuyện riêng của mỗi người.

Để hủy bỏ Onkey, lấy lại như mặc định thì :

Sub unsetup_onkey()
Application.OnKey "{ENTER}"
End Sub
 
Ðề: viết code xong nhưng không thực thi lệnh

Đúng là yêu cầu của bạn hơi thừa vì Exc có sẵn rồi , nhưng chắc bạn có lý do khác. Bạn tham khảo cách sử dụng phương thức Onkey trong file ví dụ của mình nhé.

Bạn chuyển sang sheet bất kỳ sau đó về sheet2 (Mình muốn lợi dụng ActiveSheet khai báo Onkey). Giờ bạn nhấn F12 thử xem.

Lưu ý: Phải xem xét cẩm thận trước khi dùng Onkey vì nó sẽ giành lấy quyền tác vụ của các phím chức năng đấy nhé. Vì vậy mà hiếm khi người ta Onkey trên phím Enter

(Chết thật! Soạn xong mình chẳng biết gửi kèm file ra sao cả? Bạn tham khảo code như sau:

Mã:
Private Sub Worksheet_Activate()
Application.OnKey "{F12}", "tbao"
End Sub

Và bạn thêm trong Module:

Mã:
Sub tbao()
MsgBox "Sealand xin chao cac ban!"
End Sub

Thông cảm, mình chưa biết cách sử dụng tiện ích của diễn đàn)
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top