'TAO FILE WORD
Set wDoc = aWord.Documents.Add
aWord.Visible = True
'SHEET NGUON: Dem cot, dem dong
For FCol = 1 To 100
If Cells(65536, FCol).End(xlUp).Row > 10 Then Exit For
Next FCol
EndR = Cells(65536, FCol).End(xlUp).Row + 2
Cells(1, FCol).Select
For dem = 1 To EndR
Cells(dem, FCol).Select
If LCol < Selection.Columns.Count Then LCol = Selection.Columns.Count
Next dem
LCol = LCol + FCol - 1
Cells(1, FCol).Select
'CHEP TU DAU DEN CUOI VB
Application.ScreenUpdating = False
For i = 1 To EndR
'Neu khong chia nhieu cot
If WorksheetFunction.CountA(Range(Cells(i, FCol), Cells(i, LCol))) = 1 Or WorksheetFunction.CountA(Range(Cells(i, FCol), Cells(i, LCol))) = 0 Then
'Cell hien hanh khong co du lieu -> chep nguyen dong hien hanh
If Cells(i, FCol) = "" Then
Range(Cells(i, FCol), Cells(i, LCol)).Copy
Set objRange = wDoc.Paragraphs(wDoc.Paragraphs.Count).Range
objRange.Paste
With objRange
.Font.Name = CFont
.Font.Size = CSize
.Font.Color = CColor_Table
End With
Else
wDoc.Range.InsertAfter Cells(i, FCol) & vbCrLf 'Chep du lieu neu co
End If
'Dinh dang doan van ban
With wDoc.Paragraphs(wDoc.Paragraphs.Count - 1).Range
'Dinh dang cac dong co font chu Dam
If Cells(i, FCol).Font.Bold = True Then
.Font.Bold = True
End If
'Can chinh
If Cells(i, FCol).HorizontalAlignment = xlCenter Then
.ParagraphFormat.Alignment = wdAlignParagraphCenter
Else
.ParagraphFormat.Alignment = wdAlignParagraphJustify
End If
'Gian cach giua 2 doan van ban
.ParagraphFormat.SpaceBefore = 3
.ParagraphFormat.SpaceBeforeAuto = False
.ParagraphFormat.SpaceAfter = 3
.ParagraphFormat.SpaceAfterAuto = False
End With
'Neu tai cac dong co nhieu cot
Else
If WorksheetFunction.CountA(Range(Cells(i, FCol), Cells(i, LCol))) > 1 Then
If Cells(i, FCol).Borders(xlEdgeTop).LineStyle = xlContinuous Then
For dem = i To EndR
If Cells(dem, FCol).Borders(xlEdgeRight).LineStyle = xlNone Then Exit For
Next dem
Range(Cells(i, FCol), Cells(dem - 1, LCol)).Copy
'Cells(dem - 1, FCol).Select
i = dem - 1
Else
Range(Cells(i, FCol), Cells(i, LCol)).Copy
End If
'Chep Table tu Excel sang Word
Set objRange = wDoc.Paragraphs(wDoc.Paragraphs.Count).Range
'On Error Resume Next
objRange.Paste
With objRange
.Font.Name = CFont
.Font.Size = CSize
.Font.Color = CColor_Table
End With
'On Error GoTo 0
End If
End If
Next i
'Dinh dang le trang in
With wDoc.PageSetup
.Orientation = wdOrientPortrait
.TopMargin = CentimetersToPoints(2.2)
.BottomMargin = CentimetersToPoints(2)
.LeftMargin = CentimetersToPoints(3.3)
.RightMargin = CentimetersToPoints(1.5)
End With
Dim oTbl As Object, oTblX As Object
Set oTblX = wDoc.Tables(1)
oTblX.AutoFitBehavior (wdAutoFitContent)
Tôi chỉnh sửa nhiều chỗ trong Autofit chiều cao dòng và xuất ra Word. Trong đó, xuất ra Word có 3 Sub. Các bạn tải file BC của bạn tuan16 về chạy thử với các lưu ý:
1. Autofit: cần chuẩn bị cột phụ như trong file và khai báo cột phụ ở gần đầu sub, chỗ: ChrCol = "R" 'Khai báo cot phu de AutoFit. Cột R đó tôi để đó cho trực quan, nhưng khi dùng trong thực tế phải ẩn đi.
2. ExportExcel2Word: Khai báo cell chứa giá trị header và footer chỗ Hder = Range("S1"): Fter = Range("S2") gần cuối sub. Ở các sub không format văn bản thì khi xuất sẽ phụ thuộc vào định dạng Style Normal của Word. Bạn cần setting áp dụng cho tất cả các document của Word trước khi chạy sub.
Tôi chỉnh sửa nhiều chỗ trong Autofit chiều cao dòng và xuất ra Word. Trong đó, xuất ra Word có 3 Sub. Các bạn tải file BC của bạn tuan16 về chạy thử với các lưu ý:
1. Autofit: cần chuẩn bị cột phụ như trong file và khai báo cột phụ ở gần đầu sub, chỗ: ChrCol = "R" 'Khai báo cot phu de AutoFit. Cột R đó tôi để đó cho trực quan, nhưng khi dùng trong thực tế phải ẩn đi.
2. ExportExcel2Word: Khai báo cell chứa giá trị header và footer chỗ Hder = Range("S1"): Fter = Range("S2") gần cuối sub. Ở các sub không format văn bản thì khi xuất sẽ phụ thuộc vào định dạng Style Normal của Word. Bạn cần setting áp dụng cho tất cả các document của Word trước khi chạy sub.
Cảm ơn bác nhiều. Đoạn code chạy ổn trên file bác gửi lên... Nhưng em không hiểu sao khi em lấy đoạn code ra và áp dụng trên một file excell mới thì luôn báo lỗi. Chắc em còn sai ở bước nào rồi
Cảm ơn bác nhiều. Đoạn code chạy ổn trên file bác gửi lên... Nhưng em không hiểu sao khi em lấy đoạn code ra và áp dụng trên một file excell mới thì luôn báo lỗi. Chắc em còn sai ở bước nào rồi
Tôi chỉnh sửa nhiều chỗ trong Autofit chiều cao dòng và xuất ra Word. Trong đó, xuất ra Word có 3 Sub. Các bạn tải file BC của bạn tuan16 về chạy thử với các lưu ý:
1. Autofit: cần chuẩn bị cột phụ như trong file và khai báo cột phụ ở gần đầu sub, chỗ: ChrCol = "R" 'Khai báo cot phu de AutoFit. Cột R đó tôi để đó cho trực quan, nhưng khi dùng trong thực tế phải ẩn đi.
2. ExportExcel2Word: Khai báo cell chứa giá trị header và footer chỗ Hder = Range("S1"): Fter = Range("S2") gần cuối sub. Ở các sub không format văn bản thì khi xuất sẽ phụ thuộc vào định dạng Style Normal của Word. Bạn cần setting áp dụng cho tất cả các document của Word trước khi chạy sub.
Cảm ơn bác nhiều. Đoạn code chạy ổn trên file bác gửi lên... Nhưng em không hiểu sao khi em lấy đoạn code ra và áp dụng trên một file excell mới thì luôn báo lỗi. Chắc em còn sai ở bước nào rồi
dạ thưa bác. đoạn code autofit của bác thì em chạy bình thường. nhưng những đoạn code để xuất ra word lại không được nên em mới phải nên hỏi các bác ạ
dạ thưa bác. đoạn code autofit của bác thì em chạy bình thường. nhưng những đoạn code để xuất ra word lại không được nên em mới phải nên hỏi các bác ạ
@thoai
Bạn cần xuất table sang Word kiểu gì?
1- Xuất 1 bảng có địa chỉ cụ thể trong file Excel vào 1 nơi cụ thể chuẩn bị sẵn trong file Word.
2- Xuất tất cả các bảng có trong file Excel vào cùng 1 nơi cụ thể chuẩn bị sẵn trong file Word.