Trình độ VBA và Interop của bạn tới cỡ nào? Giải pháp đòi hỏi trình độ hiểu biết tối thiểu là trung bình.
Khi copy một khoảng (kể cả một ô) trong Excel vào clipboard, hàm copy đưa cả các ký hiệu ô vào. Khi paste vào một ứng dụng khác trong Windows. Ứng dụng mới sẽ tùy ngữ cảnh mà dịch ký hiệu ô cho phù hợp.
Trường hợp của bạn, notepad dịch ra là ký hiệu xuống dòng.
Để tránh tình trạng này, ta chỉ copy value vào cipboard thôi.
Khi bạn lập macro theo kiểu cơ bản, ví dụ bạn chỉ copy ô A1 thôi thì bạn sẽ đwuowcj cái macro như sau
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 27/07/2012 by abcxyz
'
'
Range("A1").Select
Selection.Copy
End Sub
Bạn sửa nó lại như sau:
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 27/07/2012 by abcxyz
'
'
Range("A1").Select ' nếu không ở trong cell A1 thì phải chọn trước đã
With New MSForms.DataObject
.SetText Selection.Value ' nếu đã ở trong cell A1 rồi thì dùng ActiveCell.Value
.PutInClipboard
End With
End Sub
Nếu macro báo lỗi DataOject thì là do VBA của bạn chưa có Form Object Library
Trong cửa sổ VBA, chọn Tools -> References ._ tick Microsoft Forms X.X Object Library
Bookmarks