Mạn phép bổ sung một cách khác cùng bác Chính.
Về nguyên tắc, việc sao chép (Copy) với Vùng (Range) sang một ứng dụng khác thì giới hạn 255 ký tự là điều không tránh khỏi, nhưng nếu bạn truy cập trực tiếp vào từng ô, vùng thì bạn có thể làm được điều này.
Sau đây là một đoạn mã giúp bạn có thể thao tác được với điều đó:
Cách thức đơn giản như sau:
1. Khởi tạo một phiên làm việc với Word, nếu đã có Word được mở thì sử dụng luôn, nếu chưa được mở thì tạo mới
2. Đưa nội dung của ô sang Word thông qua biện pháp đọc thuộc tính của ô có số liệu và chuyển sang Word
[GPECODE=vb]Sub copy2word() Dim wrdDoc As Object, rApp As Object
Set wrdDoc = CreateWordDocument(rApp)
wrdDoc.Paragraphs(1).Range.Text = Range("theRANGE").Value
Debug.Print Range("theRANGE").Value
End Sub
Function CreateWordDocument(retApp As Object) As Object
'Muc dich: Co gang thiet lap ket noi voi mot phien lam viec cua Word neu duoc. Neu khong thi tao moi
Dim wrdApp As Object
'Co gang tao ket noi
On Error Resume Next
Set wrdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
'Khong tao duoc ketnoi
Err.Clear
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
End If
' Doan code chinh...
Set retApp = wrdApp
Set CreateWordDocument = wrdApp.Documents.Add
End Function
[/GPECODE]
Hy vọng cách này sẽ giúp bạn!