Tự động thực hiện lệnh trong sheet khi nhập số liệu một ô nào đó rồi ENTER

Liên hệ QC

VADaNang

Thành viên chính thức
Tham gia
4/12/06
Bài viết
65
Được thích
47
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.
 
VADaNang đã viết:
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.

Điều này không thực hiện được. Trong Excel chỉ xét đến sự thay đổi của Cells thôi. Chứ không xét đến các thủ tục về Key (Onkey, SendKey, PressKey . . )
 
Upvote 0
Hi,
Bạn có thể dùng cách này.
1. Vào VBA
2. Click phải vào Sheet nào bạn muốn áp dụng (trong list sheest bên trái)
3. chọn View Code
4. Paste đoạn code sau vào

Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
MsgBox "Some thing change in " & Add
End Sub

chúc bạn giải quyết tiếp được vấn đề của mình.
 
Upvote 0
SoiBien đã viết:
Hi,
Bạn có thể dùng cách này.
1. Vào VBA
2. Click phải vào Sheet nào bạn muốn áp dụng (trong list sheest bên trái)
3. chọn View Code
4. Paste đoạn code sau vào

Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
MsgBox "Some thing change in " & Add
End Sub

chúc bạn giải quyết tiếp được vấn đề của mình.

?
Nó báo lỗi, Bạn xem lại
 
Upvote 0
VADaNang đã viết:
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.

Có thể mã đó đã được viết hoàn toàn trong macro sheet nên bạn vào xem sự kiện Worksheet_SelectionChange không có mã.
 
Upvote 0
VADaNang đã viết:
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.
Bạn có thể gởi file lên để mọi người cùng tham khảo với. Thanks !
TDN
 
Upvote 0
anhphuong đã viết:
?
Nó báo lỗi, Bạn xem lại
Ban co the noi o la no bao loi gi khong?

minh van thuc hien duoc tren may minh.

Hoac ban thu doan code nay xem.

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Some thing change in " & Target.Address
End Sub
Mr_Okebab đã viết:
?
Lỗi là đương nhiên vì chưa khai báo Add mà.
neu khong dung Option Explicit thi dau can khai bao truoc dau nhi?
Than
 
Upvote 0
SoiBien đã viết:
Ban co the noi o la no bao loi gi khong?

minh van thuc hien duoc tren may minh.

Hoac ban thu doan code nay xem.

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Some thing change in " & Target.Address
End Sub

neu khong dung Option Explicit thi dau can khai bao truoc dau nhi?
Than

Nhưng máy của bác anhphuong lại có Option Explicit, vì vậy vẫn bị lỗi.

Thân!
 
Upvote 0
Code_Chạy một thủ tục khi 1 Cell thay đổi

Yêu cầu của bạn đơn giản thôi. Bạn thực hiện như sau:
1. Giả sử A1 là ô cần phải chạy thủ tục sau khi nhập số liệu
2. Bạn thực hiện đoạn Code sau:

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(Cells(1, 1)) = False Then MsgBox ("Chay 1 thu tuc")
    Cells(1, 1) = ""
End Sub
3. Sau Then thì bạn Call một thủ tục nào cũng được
Chúc thành công


==========================================
dat2007._Kiến thức là vô tận. Chúng ta cùng chia sẻ
 
Upvote 0
Kỹ thuật Wrap đối tượng!

VADaNang đã viết:
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.

Một cách thông thường, để chạy lệnh trong một đối tượng thì ta phải viết mã bên trong (như các bạn vẫn làm). Trường hợp có nhiều đối tượng hoặc số lượng đối tượng chưa xác định trước mà vẫn cần phải chạy lệnh trong các đối tượng đó khi tạo thì cần phải Wrap chúng với một CLASS (lớp đối tượng, tạo bởi Class module). Ví dụ có nhiều Workbook và nhiều sheet, tôi muốn bất cứ sheet nào của bất cứ workbook nào khi thay đổi trên cell (ô) đều phải cho ra thông báo, như thế không nhẽ tôi phải viết code trong tất cả các sheet đó?+-+-+-+ . Rất đơn giản ta làm một kỹ thuật Wrap!--=--

Vấn đề này tôi đã nói các đây một tuần nhưng chắc các bạn không để ý mà thôi. Các bạn xem theo đường link dưới đây:
http://www.giaiphapexcel.com/forum/showthread.php?p=27244#post27244

Chúc các bạn thành công!
 
Upvote 0
VADaNang đã viết:
Xin được giúp đỡ. Tôi thấy có phần mềm thực hiện trong Excel khi cho dữ liệu vào một ô ta gõ ENTER thì nó thực hiện chạy một thủ tục. Khi xem vào sự kiện Worksheet_SelectionChange và cũng như các sự kiện khác thì tôi thấy không có mã. (Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ). Xin được giải đáp để thực hiện được vấn đề này.
Ngoài cách như bác Tuân nói,tôi có thấy 1 phần mềm dự toán viết bằng macro4 kết hơp với VBA, dùng Excel5, Excel95 và cũng tạo được cách như bác nói
"Tôi nghĩ mã rằng mã đó nằm trong file *.DLL ":điều đó không bắt buộc đâu,như trong phần mềm trên, tác giả lúc đầu để trong macro4, rồi VBA, đến bây giờ thì đã chuyển sang .dll chỉ để bảo mật tốt hơn, chạy nhanh hơn
Nếu bác cần thì báo tôi sẽ lục lại, tôi lưu trử các code nầy từ năm 1999
 
Upvote 0
TranNguyenDanNhi đã viết:
Điều này không thực hiện được. Trong Excel chỉ xét đến sự thay đổi của Cells thôi. Chứ không xét đến các thủ tục về Key (Onkey, SendKey, PressKey . . )
Theo tôi nhớ thì tác giả macro4 trên khi bắt đầu chạy chương trình ( AUTO_OPEN;thời xa xưa đó Excel chưa có Events, Class) đã dùng vài chục dòng ONKEY để thay đổi /vô hiệu hóa 1 số phím chức năng: copy, export, enter ... .Khi ActiveSheet là Sheet vào mã hiệu định mức thì lại dùng ONKEY qui định phím ENTER của ActiveCell để chạy 1 thủ tục nào đó ( vd Sub A): tìm string /string gần giống nhất trong Wb định mức .....Các macro4 ONKEY đều có lệnh tương đương trong VBA
 
Upvote 0
Phần lớn mọi người quan niệm Macro4.0 là xa xưa nhưng đến Office2007 nó vẫn tồn tại mặc dù VBA đã có từ Office95. Macro4.0 vẫn luôn tồn tại cùng Office vì nó là đầu mối để lập trình Addin cấp cao cho Excel ở dạng XLL (cũng là một dạng DLL).

XLL trên Office2007:
http://msdn2.microsoft.com/en-us/library/aa730920.aspx
 
Upvote 0
Xin được bổ sung 1 tí: theo tôi nhớ thì VBA có từ Excel5 (trong bộ Office 4.x), lúc nầy bộ thu macro có 2 Option: thu theo macro4,hay VBA cũng được, VBA được chứa trong 1 dạng như Sheet chứ chưa có VBE, Help macro4 vẫn có, sang Office95 ( Excel 95), vẫn còn 16 bit,và vẫn tồn tại song song 2 dạng thu macro.
Tạo menu ở 2 version nầy có 1 đặc điểm rất thú vị là nó chứa thẳng trong file xls, cho dù bạn mở file nầy trong Excel 97 -> 2003 và không thể gở bỏ bởi các công cụ có sẳn của Excel 97 -> 2003
Từ Excel 97 (32 bit) thì bỏ hẳn bộ thu (record macro 4), và file help macro4
Trong file help của macro4 thì 98% có hướng dẫn tương đương lệnh với VBA, vẫn có vài lệnh trong macro4 mà VBA không có lệnh tương đương
 
Upvote 0
Các bác ạ
Em muốn viết lại cái Vlookup trong marcro để nguời dùng không biết là em dùng Vlookup thì làm thế nào.
ví dụ cái hàm này
VLOOKUP("Text can tim",Dic!B:D,3,FALSE)
 
Upvote 0
Các bác ạ
Em muốn viết lại cái Vlookup trong marcro để nguời dùng không biết là em dùng Vlookup thì làm thế nào.
ví dụ cái hàm này
VLOOKUP("Text can tim",Dic!B:D,3,FALSE)


VD tên sheet trong VBA là sheet1 (tức là tên của sheet Dic)

PHP:
=WorksheetFunction.VLOOKUP("Text can tim",Sheet1.Range("B:D"),3,0)


Thân!

 
Upvote 0
Web KT

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

Back
Top Bottom