Có đoạn code nào biến mọi thao tác dán thành Paste Values không?

Liên hệ QC

nghiaphuc

Thành viên gạo cội
Thành viên danh dự
Tham gia
25/9/09
Bài viết
5,729
Được thích
8,854
Giới tính
Nam
Nghề nghiệp
Giáo viên
Mình có làm một chương trình quản lý điểm cho trường và mình gặp một vấn đề như sau:
Trong bảng tính, mình đã định dạng nhất quán khung, nền, font chữ, cỡ chữ, CF,... rồi, nhưng khi giáo viên copy điểm từ file điểm cá nhân của họ vào chương trình (vì đây là chương trình dùng chung cho tất cả các môn, các lớp) thì những định dạng ban đầu của mình thường bị biến đổi. Mặc dù nó chẳng làm thay đổi gì chức năng của chương trình (trừ những thứ liên quan đến Validation) nhưng về mặt thẩm mỹ thì rất khó chịu.
Thực tế thì mình đã hướng dẫn rất nhiều lần về thao tác Paste Values, thậm chí mình còn kéo nút Paste Values lên thanh Menu và đặt phím tắt cho nó, nhưng có lẽ do thói quen khó bỏ nên thường thì giáo viên cứ nhấn nút Paste hoặc nhấn Ctrl+V để dán.
Vậy, xin hỏi: Liệu có đoạn code nào có thể biến mọi thao tác dán thành Paste Values không? Ít nhất là biến 2 thao tác: nhấn nút Paste và nhấn Ctrl+V thành Paste Values.
Rất mong nhận được câu trả lời của các anh, chị, em.
Xin chân thành cảm ơn!
 
Em xin lỗi vì đã đào mộ vì em không biết làm thế nào để có thể làm được trên file exel của em. Em đã thử copy toàn bộ code qua file của mình, save dưới định dạng .xlsm và nhận được lỗi:
View attachment 170547

Kính nhờ các anh / chị giúp đỡ hướng dẫn em với ạ.
Sao bạn không đưa file lên cho mọi người kiểm tra? Chỉ nhìn cái hình lại vừa mờ thì làm sao biết được
 
Upvote 0
Chào mọi người. Chúc cả nhà ngày mới tốt lành ạ. :)
Cảm ơn thầyndu96081631 đã quan tâm ạ. Em Bookmark topic này mà không để ý rằng post của em là cuối của trang nên tưởng không ai quan tâm luôn :)
Trong post trước em post hình lớn nhưng showroom tự resize hình. Em post lại lỗi và đính kèm file trong post này, nhờ thầy giúp em ạ. Em xin cảm ơn.
err.jpg
 

File đính kèm

  • Book2.xlsm
    14.5 KB · Đọc: 9
Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người. Chúc cả nhà ngày mới tốt lành ạ. :)
Cảm ơn thầyndu96081631 đã quan tâm ạ. Em Bookmark topic này mà không để ý rằng post của em là cuối của trang nên tưởng không ai quan tâm luôn :)
Trong post trước em post hình lớn nhưng showroom tự resize hình. Em post lại lỗi và đính kèm file trong post này, nhờ thầy giúp em ạ. Em xin cảm ơn.
View attachment 170644
Báo lỗi là vì bạn quên đổi tên Class1 thành clsExcelEvents

Capture.JPG



















nên vừa khởi động file, lập tức báo lỗi ngay dòng đầu tiên liền (bởi nó không tìm thấy thằng nào tên là clsExcelEvents cả


Capture2.JPG
 
Upvote 0
1> Code trong Module
PHP:
Sub PutDataToClipboard()
  Dim Text As String
  On Error Resume Next
  With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .GetFromClipboard
    Text = .GetText
    .Clear
    .SetText Text
    .PutInClipboard
  End With
End Sub
2> Code trong Thisworkbook
PHP:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  On Error Resume Next
  If Application.CutCopyMode Then PutDataToClipboard
End Sub
Vậy thôi
Cái này có sử dụng được trên Excel 2019 không? Sao mình làm rồi mà khi Pase không có tác dụng?
 
Upvote 0
Sao không dùng Quick Access để gán nút dán Value lên Ribbon. Gán vào phím Alt+1 rồi dán thôi.
1605498967090.png
 
Upvote 0
Dạ em tưởng làm việc chỉ trong Excel thưa thầy, với lại nếu dán từng ô thì F2 rồi dán vẫn ổn mà thầy.
Ngoài ra thì tác giả bài viết có nói rằng:
Thực tế thì mình đã hướng dẫn rất nhiều lần về thao tác Paste Values, thậm chí mình còn kéo nút Paste Values lên thanh Menu và đặt phím tắt cho nó, nhưng có lẽ do thói quen khó bỏ nên thường thì giáo viên cứ nhấn nút Paste hoặc nhấn Ctrl+V để dán.
Vậy, xin hỏi: Liệu có đoạn code nào có thể biến mọi thao tác dán thành Paste Values không? Ít nhất là biến 2 thao tác: nhấn nút Paste và nhấn Ctrl+V thành Paste Values.
Rất mong nhận được câu trả lời của các anh, chị, em.
Xin chân thành cảm ơn!
Bạn thấy nhu cầu của người ta có hợp lý không?
 
Upvote 0
Ngoài ra thì tác giả bài viết có nói rằng:

Bạn thấy nhu cầu của người ta có hợp lý không?
Dạ nếu vấn đề ở thói quen sao không xử lí thói quen đó nhỉ. Em xin lỗi, nếu như thói quen đó của các thầy cô không sửa được thì em sẽ tạo 1 sheet phụ để họ dán Ctr+V vào và link qua sheet form bên kia. Em chỉ khai thác hết các công cụ của Excel trước khi nhờ mọi người code.
 
Upvote 0
Dạ nếu vấn đề ở thói quen sao không xử lí thói quen đó nhỉ. Em xin lỗi, nếu như thói quen đó của các thầy cô không sửa được thì em sẽ tạo 1 sheet phụ để họ dán Ctr+V vào và link qua sheet form bên kia. Em chỉ khai thác hết các công cụ của Excel trước khi nhờ mọi người code.
Mình dân kỹ thuật chỉ biết viết code thôi, chuyện cá nhân của họ mình không quan tâm
 
Upvote 0
Thế sao bạn không dùng code của những bài viết mới nhất?
Xem file này nhé
Cách dùng:
- Khởi động file, bạn sẽ thấy trên thanh menu có xuất 1 menu mới (nếu dùng Excel 2003) hoặc sẽ thấy 1 tab mới tên là Add-Ins với 1 cái nút (nếu dùng Excel 2007 hoặc Excel 2010)
- Bấm vào nút để kích hoạt sự kiện Paste Values
- Tiến hành thí nghiệm copy gì đó rồi paste sang nơi khác xem có thật sự là nó đang Paste Values không
- Nếu muốn mọi thứ trở về mặc định, bấm nút lần nữa (để reset sự kiện Paste Values)
thay ndu ơi, sao e mở file lên test thử lúc paste lại k hiện ra value thế ạ1605519208276.png
 
Upvote 0
Web KT

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

Back
Top Bottom