Làm thế nào để Macro chạy tự động mà không cần phải lệnh?

Liên hệ QC

phamxuyenp171

Thành viên hoạt động
Tham gia
2/4/09
Bài viết
103
Được thích
124
Xin chào mọi người!
Tôi muốn tạo một Macro với ý tưởng như sau:
- Khi vừa nhập xong kí tự thứ hai trong một ô tính thì kí tự thứ hai vẫn được nhập trong ô tính nhưng ngay sau đó ô hiện hành được tự động chuyển xuống ô rỗng phía dưới (cùng cột).
- Sau đó nếu tôi nhập đến kí tự thứ hai trong ô tính phía dưới thì nó lại tự động chuyển ô hiện hành đến ô rỗng phía dưới. và cứ tiếp tục như vậy.
Tôi đã tạo một Macro với code như sau:


Sub MakeDecision()
'
' MakeDecision Macro
' Macro recorded 6/15/2010 by xuyen
Do Until ActiveCell = ""
If Len(ActiveCell)= 2 Then
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop
End Sub



Nhưng với code này, sau khi nhập xong nếu tôi chọn Run thì nó mới chuyển xuống ô rỗng phía dưới (nói chung là nó chỉ thực hiện khi được lệnh).


Xin hỏi mọi người có cách nào để Macro này tự chạy ý tưởng mà tôi vừa nói ở trên hay không? Kính mong mọi người giúp đỡ. Xin cảm ơn
 
Lần chỉnh sửa cuối:
Xin chào mọi người!
Tôi muốn tạo một Macro với ý tưởng như sau:
- Khi vừa nhập xong kí tự thứ hai trong một ô tính thì kí tự thứ hai vẫn được nhập trong ô tính nhưng ngay sau đó ô hiện hành được tự động chuyển xuống ô rỗng phía dưới (cùng cột).
- Sau đó nếu tôi nhập đến kí tự thứ hai trong ô tính phía dưới thì nó lại tự động chuyển ô hiện hành đến ô rỗng phía dưới. và cứ tiếp tục như vậy.
Tôi đã tạo một Macro với code như sau:


Sub MakeDecision()
'
' MakeDecision Macro
' Macro recorded 6/15/2010 by xuyen
Do Until ActiveCell = ""
If Len(ActiveCell)= 2 Then
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop
End Sub



Nhưng với code này, sau khi nhập xong nếu tôi chọn Run thì nó mới chuyển xuống ô rỗng phía dưới (nói chung là nó chỉ thực hiện khi được lệnh).


Xin hỏi mọi người có cách nào để Macro này tự chạy ý tưởng mà tôi vừa nói ở trên hay không? Kính mong mọi người giúp đỡ. Xin cảm ơn
Hãy khoan nói đến việc sẽ viết code thế nào... Chỉ mỗi 1 chuyện bạn yêu cầu rằng: "Khi gõ đến ký tự thứ 2 thì... " ... Ẹc... Ẹc... không thể nào thực hiện được ---> Lý do vì code chỉ chạy khi bạn hoàn tất nhập liệu ---> Đang gõ (ở chế độ Edit) thì chẳng thằng macro nào hoạt động được
 
Upvote 0
Vậy thế tại sao tôi thấy có một số phần mềm chạy trên nền Excel thì lại thực hiện được điều này hả bác. Cụ thể tôi không nhớ tên là phần mềm gì nhưng có đó bác ạ!
 
Upvote 0
Vậy thế tại sao tôi thấy có một số phần mềm chạy trên nền Excel thì lại thực hiện được điều này hả bác. Cụ thể tôi không nhớ tên là phần mềm gì nhưng có đó bác ạ!
Phần mềm thì chẳng nói làm gì... ví dụ Unikey có thể làm được khi bạn đang gõ chữ (nếu không thì làm sao nó đánh dấu tiếng Việt được)
Ở đây chúng ta đang nói về code VBA và e rằng chẳng có code nào làm được như bạn vừa nói
 
Upvote 0
Tôi nghĩ là làm được, chỉ tổi ta chưa biết cách làm nó mà thôi.
 
Upvote 0
Phần mềm thì chẳng nói làm gì... ví dụ Unikey có thể làm được khi bạn đang gõ chữ (nếu không thì làm sao nó đánh dấu tiếng Việt được)
Ở đây chúng ta đang nói về code VBA và e rằng chẳng có code nào làm được như bạn vừa nói

Ở đây là tôi đang nói về những phần mềm được viết ra từ Excel đấy bác. Dù sao cũng học hỏi. thank!
 
Upvote 0
Các Pro viết cho code như sau: Khi ta click+nhấn một phím bất kỳ (Ctrl chẳng hạn) tại một ô bất kỳ của cột A thì macro sẽ chay. Xin cảm ơn.
 
Upvote 0
Xin chào mọi người!
Tôi muốn tạo một Macro với ý tưởng như sau:
- Khi vừa nhập xong kí tự thứ hai trong một ô tính thì kí tự thứ hai vẫn được nhập trong ô tính nhưng ngay sau đó ô hiện hành được tự động chuyển xuống ô rỗng phía dưới (cùng cột).
- Sau đó nếu tôi nhập đến kí tự thứ hai trong ô tính phía dưới thì nó lại tự động chuyển ô hiện hành đến ô rỗng phía dưới. và cứ tiếp tục như vậy.
Tôi đã tạo một Macro với code như sau:


Sub MakeDecision()
'
' MakeDecision Macro
' Macro recorded 6/15/2010 by xuyen
Do Until ActiveCell = ""
If Len(ActiveCell)= 2 Then
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop
End Sub



Nhưng với code này, sau khi nhập xong nếu tôi chọn Run thì nó mới chuyển xuống ô rỗng phía dưới (nói chung là nó chỉ thực hiện khi được lệnh).


Xin hỏi mọi người có cách nào để Macro này tự chạy ý tưởng mà tôi vừa nói ở trên hay không? Kính mong mọi người giúp đỡ. Xin cảm ơn

Chào bạn, bạn thử dùng event change của wooksheet để làm thử xem sao nhé, mình nghĩ là đươc
 
Upvote 0
Xin chào mọi người!
Tôi muốn tạo một Macro với ý tưởng như sau:
- Khi vừa nhập xong kí tự thứ hai trong một ô tính thì kí tự thứ hai vẫn được nhập trong ô tính nhưng ngay sau đó ô hiện hành được tự động chuyển xuống ô rỗng phía dưới (cùng cột).
- Sau đó nếu tôi nhập đến kí tự thứ hai trong ô tính phía dưới thì nó lại tự động chuyển ô hiện hành đến ô rỗng phía dưới. và cứ tiếp tục như vậy.
Tôi đã tạo một Macro với code như sau:

Mã:
[LEFT][SIZE=2]Sub MakeDecision()
[/SIZE] [LEFT][SIZE=2]'
[/SIZE][SIZE=2]' MakeDecision Macro
[/SIZE][SIZE=2]' Macro recorded 6/15/2010 by xuyen
[/SIZE][SIZE=2]    Do Until ActiveCell = ""
    If Len(ActiveCell)= 2 Then[/SIZE][SIZE=2]
        ActiveCell.Offset(1, 0).Range("A1").Select[/SIZE][SIZE=2]
    End If[/SIZE][SIZE=2]
Loop[/SIZE][SIZE=2]
End Sub[/SIZE]        [/LEFT]
[/LEFT]

Nhưng với code này, sau khi nhập xong nếu tôi chọn Run thì nó mới chuyển xuống ô rỗng phía dưới (nói chung là nó chỉ thực hiện khi được lệnh).

Xin hỏi mọi người có cách nào để Macro này tự chạy ý tưởng mà tôi vừa nói ở trên hay không? Kính mong mọi người giúp đỡ. Xin cảm ơn

Bạn có thể áp dụng theo như bài ở đây. Nhưng nói trước là nói hơi phức tạp vì phải áp dụng kỹ thuật HOOK.

Vbavn
 
Upvote 0
Web KT

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

Back
Top Bottom