Xin Giúp đỡ Về Sự Kiện Worksheet_Change | Page 2
Có thể bạn quan tâm
- Trang chủ Có gì mới Hoạt động gần nhất Tác giả
- Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
- Video Video về Excel Video về tin học khác Tin tức về tin học chung
- Thông tin mới Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
- Tài nguyên Đánh giá mới nhất Tìm tài nguyên
- Đóng góp
Tìm kiếm
Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Tìm kiếm Tìm nâng cao…- Tìm bài viết mới
- Tìm theo chuyên mục
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
- Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
- Trang chủ
- Diễn đàn
- Lập Trình với Excel
- Lập Trình với Excel
- Thread starter trungvdb
- Ngày gửi 15/2/12
trungvdb
Thành viên thường trực
Tham gia 22/8/08 Bài viết 374 Được thích 171 Nghề nghiệp Tài chính Giả sử tôi có đoạn Code sau PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$H$1" Then Range("A1").CurrentRegion.Copy: Range("A10").PasteSpecial 3 End If End Sub Bây giờ tôi muốn lệnh Copy chỉ được thực hiện khi ô H1>100 thì lệnh Copy mới thực hiện, tôi sửa thành PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$H$1" And Target > 100 Then Range("A1").CurrentRegion.Copy: Range("A10").PasteSpecial 3 End If End Sub thì nó lỗi, vậy xin hỏi mọi người chỉ cho cách viết đúng Trước- 1
- 2
Go to page
Tiếp tục Sắp xếp theo thời gian sắp xếp theo bầu chọnptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,445 Được thích 37,105 Donate (Momo) Giới tính Nam Nghề nghiệp Consultanttrungvdb đã viết: Chốt lại bản chất vấn đề này thày Ndu giảng giải và kết luận: Target là tất cả những cell có thay đổi Nhấp chuột vào đây để mở rộng...Đúng nhưng chưa đủ. Chỉ đúng trong sự kiện Change. Mọi cái đều phải xem xét trong bối cảnh của nó. Đối với sự kiện Worksheet_Change thì Target là cell hoặc Range (nhiều Cells) có thay đổi giá trị Đối với sự kiện Selection_Change, thì Target là cell hoặc Range (nhiều Cells) vừa di chuyển tới. Nên so sánh với sự kiện Sheet_Change: khi thay đổi giá trị bằng cách gõ vào và Enter, thì Target là ô vừa gõ và dời đi, chứ không phải ô vừa chuyển tới. Đối với sự kiện BeforeRightClick hoặc BeforeDoubleClick thì target là ô mà ta nhấn chuột phải vào, hoặc double click vào. Upvote 0 D
Dauthivan
Thành viên tiêu biểu
Tham gia 15/8/08 Bài viết 565 Được thích 327 Em nghĩ chưa hẳn vậy, ví dụ sự thay đổi do nguyên nhận thực hiện lệnh Copy cả vùng sang chỗ khác, lúc này những vùng sau khi được Paste vào đâu có phải đặt con trỏ vào cả tất vùng đâu. Quan trọng là bản chất vấn đề những cái gì thay đổi thôi. Upvote 0 Ttrungvdb
Thành viên thường trực
Tham gia 22/8/08 Bài viết 374 Được thích 171 Nghề nghiệp Tài chính Cảm ơn thày Ptm0412, bản thân mới tìm hiểu Worksheet_Change, nhờ thày chỉ cho nên có điều kiện biết thêm về cả Selection_Change, BeforeRightClick hoặc BeforeDoubleClick. Lần chỉnh sửa cuối: 16/2/12 Upvote 0ndu96081631
Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950Hoàng Trọng Nghĩa đã viết: Nói đúng hơn, Target là nơi mà con trỏ đặt vào và có thay đổi tại ô đó. Nhấp chuột vào đây để mở rộng...Không đúng nha! Copy Paste thì tính sao? ---------------------------------- Nói thêm về sự kiện Change: - Target là tất cả những cell có thay đổi giá trị nhưng không tính các cell thay đổi do công thức gây ra Ví dụ trên bảng tính, ta gõ vào cell D1 công thức =A1 Ta thiết lập sự kiện Change bẳng code PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$1" Then MsgBox Target.Address End If End Sub Khi ta thay đổi giá trị tại A1 thì D1 cũng có thay đổi nhưng chẳng có code nào hoạt động cả - Ngoài ra Target cũng không tính các LinkCell do các ComboBox, ListBox thay đổi luôn Lần chỉnh sửa cuối: 16/2/12 Upvote 0
ptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,445 Được thích 37,105 Donate (Momo) Giới tính Nam Nghề nghiệp ConsultantDauthivan đã viết: Em nghĩ chưa hẳn vậy, ví dụ sự thay đổi do nguyên nhận thực hiện lệnh Copy cả vùng sang chỗ khác, lúc này những vùng sau khi được Paste vào đâu có phải đặt con trỏ vào cả tất vùng đâu. Quan trọng là bản chất vấn đề những cái gì thay đổi thôi. Nhấp chuột vào đây để mở rộng...Chắc DauthiVan trả lời bài 20 của Nghĩa? Đúng rồi, nếu dùng câu lệnh VBA để gán giá trị vào 1 ô hoặc 1 Range nhiều ô, thì ô hoặc Range đó thay đổi giá trị, nhưng con trỏ ở đâu đâu ấy. Thí dụ con trỏ ở đâu không cần biết, nhưng chạy câu lệnh này: Cells(1, 1).Resize(10, 4) = RArr Thì Target là vùng A110 Upvote 0 T
trungvdb
Thành viên thường trực
Tham gia 22/8/08 Bài viết 374 Được thích 171 Nghề nghiệp Tài chính Em hỏi hơi ngớ ngẩn 1 chút tại sao khi dùng địa chỉ tương đối không được mà địa chỉ tuyệt đối lại được, ví dụ em thay đổi Code của thày Ndu thì khi đánh giá trị mới hộp thoại Msgbox không chịu ra PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "D1" Then MsgBox Target.Address End If End Sub Upvote 0Hoàng Trọng Nghĩa
Chuyên gia GPE
Thành viên BQT Moderator Tham gia 17/8/08 Bài viết 8,662 Được thích 16,719 Giới tính Namndu96081631 đã viết: Không đúng nha! Copy Paste thì tính sao? ---------------------------------- Nói thêm về sự kiện Change: - Target là tất cả những cell có thay đổi giá trị nhưng không tính các cell thay đổi do công thức gây ra Ví dụ trên bảng tính, ta gõ vào cell D1 công thức =A1 Ta thiết lập sự kiện Change bẳng code PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$1" Then MsgBox Target.Address End If End Sub Khi ta thay đổi giá trị tại A1 thì D1 cũng có thay đổi nhưng chẳng có code nào hoạt động cả - Ngoài ra Target cũng không tính các LinkCell do các ComboBox, ListBox thay đổi luôn Nhấp chuột vào đây để mở rộng...Nhớ ngày mới vào diễn đàn, những ngày tập tành "con đường gian khổ" VBA, mình có hỏi câu TARGET là gì, thật sự mà nói, định nghĩa nó cũng vô vàn, nhưng chỉ biết "gài" nó vào vùng nào đó rồi xử lý nó thôi. Mình cũng thấy rằng môi trường học tập tại đây thật độc đáo, có những người không phải là giáo viên, song, họ rất nhiệt tình hướng dẫn, chỉ bảo, trong tâm mình cũng coi những vị đó như ÂN SƯ như Sư phụ PTM0412, như Thầy ndu96081631, như Bác SA_DQ, ... họ thật sự là những người Thầy của mình. Và mình cũng tự hào rằng, nhờ có môi trường GIẢI PHÁP EXCEL mà kỹ năng vận dụng hàm, công thức, kể cả VBA mình thật sự tiến bộ. Cám ơn diễn đàn và các thành viên rất nhiều! (Sẳn dịp các bạn hỏi những kiến thức cơ bản làm gợi nhớ lại những ngày đầu, tự nhiên có cảm xúc, xin BQT đừng xem là Spam nhé! Cám ơn) Lần chỉnh sửa cuối: 16/2/12 Upvote 0
ndu96081631
Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950trungvdb đã viết: Em hỏi hơi ngớ ngẩn 1 chút tại sao khi dùng địa chỉ tương đối không được mà địa chỉ tuyệt đối lại được, ví dụ em thay đổi Code của thày Ndu thì khi đánh giá trị mới hộp thoại Msgbox không chịu ra PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "D1" Then MsgBox Target.Address End If End Sub Nhấp chuột vào đây để mở rộng...Thuộc tính Address còn có mấy tham số nữa đấy Để dùng địa chỉ tương đối, sửa code thành: PHP:Sao chép. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "D1" Then MsgBox Target.Address End If End Sub Upvote 0
ptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,445 Được thích 37,105 Donate (Momo) Giới tính Nam Nghề nghiệp Consultant Nói thêm về chỗ này 1 chút: Không biết Trung hiểu thế nào, câu kết luận thì đúng nhưng phát biểu này không đúng:trungvdb đã viết: (vì 1 ô H1 không thể so sánh được với nhiều ô thay đổi). Nhấp chuột vào đây để mở rộng...Trong code bài #3 sinh ra lỗi Type Mismatch, và bài #5 tôi nói:
Khi xoá dòng 10:100, sự kiện chạy lần 2, Target.Address = $10$100, và Target.Value > 100 không tính được vì target là cả 1 range chứ không phải 1 cell, target.Value là 1 mảng các giá trị chứ không phải 1 giá trị, không so sánh với 1 giá trị đơn được. (Type MisMatch là chỗ này) Nhấp chuột vào đây để mở rộng...Lỗi sinh ra khi có sự thay đổi lần 2, và lần 3, vì khi đó Target (vùng xảy ra thay đổi) không phải là 1 ô, Target.Value trở thành 1 mảng giá trị. Lỗi Type Mismatch xảy ra vì ta cố so sánh 1 Mảng với 1 giá trị đơn là 100. Có còn so sánh với H1 nữa đâu? Không so sánh Target mới với H1, cũng không so sánh H1 với 100 gì cả. Tìm lại gốc của lỗi: Nguyên do chính vì code chạy nhiều lần. Nên trong bài #5, tôi có nói muốn sửa lỗi triệt để phải khử Event bằng cặp lệnh: Application.EnableEvents = False và Application.EnableEvents = True Khi xoá dòng 10:100 và khi copy Paste vào A10, có thay đổi, sự kiện có diễn ra, nhưng nhấp nhổm tìm code chạy thì đụng nhằm bảng cấm sự kiện. Khoẻ re: không chạy, không lỗi, lại còn lợi về tốc độ. Upvote 0 T
trungvdb
Thành viên thường trực
Tham gia 22/8/08 Bài viết 374 Được thích 171 Nghề nghiệp Tài chính Sau khi thày giảng xong thì tôi đã hiểu rồi ah, chỉ bởi trước quan niệm tôi hiểu nhầm là H1 thuộc Target (thời điểm đó chưa hiểu bản chất Target trong phương thức Worksheet_Change là những ô thay đổi). Hôm nào được thày Mỹ gợi ý là hôm đó chắc chắn bản thân tôi tìm theo hướng thày chỉ bảo, học được rất nhiều kiến thức bổ ích. Xin đa tạ thày rất nhiều. Upvote 0ptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,445 Được thích 37,105 Donate (Momo) Giới tính Nam Nghề nghiệp Consultanttrungvdb đã viết: Sau khi thày giảng xong thì tôi đã hiểu rồi ah, chỉ bởi trước quan niệm tôi hiểu nhầm là H1 thuộc Target (thời điểm đó chưa hiểu bản chất Target trong phương thức Worksheet_Change là những ô thay đổi). Hôm nào được thày Mỹ gợi ý là hôm đó chắc chắn bản thân tôi tìm theo hướng thày chỉ bảo, học được rất nhiều kiến thức bổ ích. Xin đa tạ thày rất nhiều. Nhấp chuột vào đây để mở rộng...Nghe đồn trong 3 ngày lão chết tiệt đi Nha Trang, không được nghe mắng có người thấy nhớ nhớ thì phải? http://www.giaiphapexcel.com/forum/...về-mảng-trong-VBA-(Array)&p=375855#post375855 Vậy thì mắng đây: Giải thích ở bài #5, mãi bài #19 mới nói hiểu rồi hiểu rồi, mà lại vẫn phát biểu trật lất! Lần chỉnh sửa cuối: 16/2/12 Upvote 0 H
Hai19811981
Thành viên mới
Tham gia 24/2/21 Bài viết 1 Được thích 0 Sự kiên change khi paste dữ liệu vào ô target công thức ko đổi đúng không các bác Upvote 0 Trước- 1
- 2
Go to page
Tiếp tục Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.Bài viết mới nhất
L Chuyển 600 câu hỏi trắc nghiệm sang excel theo mẫu- linhxinhthat
- Thứ tư lúc 15:52
- Hàm và công thức Excel
- jusend
- Thứ tư lúc 16:43
- Giải thích, gỡ rối, xử lý lỗi công thức
- Question
- binhtv69
- 22/11/24
- Lập Trình với Excel
- heocondethuong1235
- Hôm qua, lúc 13:45
- Những vấn đề chung
- nghiemcongdien
- 9/11/24
- Google Spreadsheets
- Question
- DMQ
- Thứ tư lúc 21:16
- Lập Trình với Excel
- Question
- ongke0711
- 6/10/24
- Lập Trình với Excel
- luuviettrung
- Hôm qua, lúc 16:31
- Hỏi đáp những vấn đề khác
- Hoale85
- Hôm qua, lúc 11:16
- Những vấn đề chung
- acrox84
- Thứ tư lúc 11:03
- Làm việc với ngày tháng và thời gian
- Ks.longvandinh1988
- Hôm qua, lúc 14:17
- Excel và Kế Toán
- Lan Ny
- Hôm qua, lúc 11:55
- Hàm và công thức Excel
- Nguyễn Duy Tuân
- Hôm qua, lúc 09:21
- BLUESOFTS: A-Excel, A-Tools
- GPE-Trợ Lý
- Hôm qua, lúc 10:07
- Học tập Online
- Ngocminh19
- Thứ tư lúc 18:56
- Hàm và công thức Excel
- Question
- MinhKhai
- 20/8/13
- Lập Trình với Excel
- Question
- tienhuy832011
- Thứ ba lúc 20:07
- Lập Trình với Excel
- Question
- Toanke063
- 22/11/24
- Lập Trình với Excel
- Nguyễn Hậu LK
- Thứ tư lúc 16:18
- Hỏi đáp những vấn đề khác
- raygpt
- Thứ ba lúc 22:52
- Hàm và công thức Excel
Thành viên có số lượng bài viết cao nhất tháng
- Hoàng Tuấn 868 152
- ptm0412 81
- VetMini 47
- HUONGHCKT 42
- ongke0711 42
- hoangtuaotrang_hp_vn 35
- SA_DQ 34
- befaint 33
- Tuấn Bụng Bự 31
- bebo021999 31
- BuiQuangThuan 28
- HeSanbi 25
- huuthang_bd 23
- HieuCD 18
- huhumalu 17
- DeTong 17
- CHAOQUAY 16
- Nguyễn Diêu Hiền 15
- Manhhung90 13
- phuongnam366377 13
Thành viên có điểm tương tác cao nhất tháng
- Hoàng Tuấn 868 131
- HUONGHCKT 77
- ptm0412 77
- VetMini 64
- HeSanbi 63
- ongke0711 58
- HieuCD 44
- SA_DQ 44
- BuiQuangThuan 42
- befaint 41
- huuthang_bd 39
- bebo021999 30
- hoangtuaotrang_hp_vn 30
- GPE-Trợ Lý 29
- Phuocam 19
- DeTong 16
- huhumalu 15
- phuongnam366377 12
- CHAOQUAY 12
- Duy Tùng 9x 12
- Trang chủ
- Diễn đàn
- Lập Trình với Excel
- Lập Trình với Excel
- Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Từ khóa » Sự Kiện Worksheet_change
-
Các Sự Kiện Khi Thao Tác Với Worksheet Trong VBA
-
Worksheet.Change Event (Excel) | Microsoft Docs
-
Khai Thác Sự Kiện Worksheet_Change VBA Excel để Cập Nhật Dữ ...
-
Event Trong VBA - Viblo
-
Tự động Cập Nhật Báo Cáo Khi Thay đổi Thời Gian Bằng VBA
-
Worksheet Change Event - Excel Dashboards VBA
-
VBA Worksheet Change Event - Run A Macro When A Cell Changes
-
Sự Kiện Excel Worksheet_Change Không Hoạt động - HelpEx
-
Nhiều Sự Kiện Worksheet_Change Trong Mã Vba - HelpEx
-
Worksheet Change Event: Run Excel Macros When A Cell Changes ...
-
Events (sự Kiện) Trong VBA Excel - Tài Liệu Text - 123doc
-
Có Thể Giải Thick Cho E Thêm Về Bẫy Lỗi Với Sự Kiện Worksheet_change
-
Worksheet Change Event, Excel VBA - ExcelAnytime