Các giải pháp tôi thực sự đã đi với ta như sau:
- Lưu một bản sao của nhà nước vào clipboard
- Rõ ràng clipboard
- Tạo dữ liệu tôi muốn trong một tab/newline phân định dạng, đẩy nó vào clipboard
- Mô phỏng thao tác Ctrl + V thành Excel
- Xóa khay nhớ tạm
- Khôi phục trạng thái ban đầu vào clipboard
Rõ ràng đây là cục bộ để thao tác tế bào, vì vậy bạn không thể đẩy độc đoán hoạt động/callbacks undo stack. Ngoài ra, tôi rõ ràng vi phạm nguyên tắc xung quanh việc sử dụng clipboard trong Windows, nhưng nếu Microsoft tiếp xúc với API tốt hơn cho những thứ như vậy (gợi ý), tôi sẽ không phải làm như vậy. Ngoài ra, tôi đã không đi với giải pháp mà tôi đã mô tả trong bình luận đầu tiên về câu trả lời của David Zemens vì tôi nhấn một số vi phạm an ninh trong môi trường của chúng tôi (ví dụ, tiêm mã VBA vào sổ làm việc là không).
Dù sao, cảm ơn mọi người!
Nguồn
2013-06-04 14:28:30
Việc chiếm đoạt clipboard không khả thi vì bạn có khả năng ghi đè lên nội dung của người dùng và họ sẽ thực sự phát điên nếu bạn làm điều đó. –