Làm sao để lấy được giá trị dòng cuối (có dữ liệu) trong 1 cell của Word table?

Liên hệ QC

phanminhphuong

Thành viên hoạt động
Tham gia
26/7/13
Bài viết
127
Được thích
68
Mình muốn lấy giá trị dòng cuối cùng có dữ liệu của ThisDocments.Tables(1).Cell(8, 5) thì phải viết code như thế nào?
Xin vui lòng xem file & trợ giúp. (mình muốn lấy giá trị "- Line 5.")
Many tks.
 

File đính kèm

  • How to get Value of Last data row in a cell of word table.doc
    68.5 KB · Đọc: 8
Lần chỉnh sửa cuối:
Mình muốn lấy giá trị dòng cuối cùng có dữ liệu của ThisDocments.Tables(1).Cell(8, 5) thì phải viết code như thế nào?
Xin vui lòng xem file & trợ giúp. (mình muốn lấy giá trị "- Line 5.")
Many tks.

Đã xong Table(1)
PHP:
Sub Get_Last_Data_Line()

Dim t1 As Table: Set t1 = ThisDocument.Tables(1)
Dim EndLine

EndLine = t1.Cell(8, 5).Range.Paragraphs(t1.Cell(8, 5).Range.Paragraphs.Count)
EndLine = Trim(Left(EndLine, Len(EndLine) - 2))
MsgBox EndLine

End Sub
Nhờ mọi ngươi giúp cho bảng 2 (file ở #1)...
 
Lần chỉnh sửa cuối:
Đã xong Table(1)
PHP:
Sub Get_Last_Data_Line()

Dim t1 As Table: Set t1 = ThisDocument.Tables(1)
Dim EndLine

EndLine = t1.Cell(8, 5).Range.Paragraphs(t1.Cell(8, 5).Range.Paragraphs.Count)
EndLine = Trim(Left(EndLine, Len(EndLine) - 2))
MsgBox EndLine

End Sub
Nhờ mọi ngươi giúp cho bảng 2 (file ở #1)...

Có 2 cách:
1) Xóa bỏ Paragraphs rỗng (blank): len(paragraphs)=1 của thisDocument.Tables(1).Cell(8,5) sau đó dùng code của bạn => Có thể bị thay đổi cấu trúc Cell => không nên dùng.
2) Dùng vòng lặp duyệt Paragraphs của thisDocument.Tables(1).Cell(8,5) từ dưới lên gặp Paragrahs nào có len>1 thì chính là dòng dữ liệu cuối của Cell đấy
 
Bạn thử code này xem
PHP:
Sub Get_Last_Data_Line()
Dim EndLine As String
EndLine = ThisDocument.Tables(1).Cell(8, 5).Range.Text
EndLine = Replace(Trim(Right(Trim(Replace(Replace(Replace(EndLine, ChrW(7), ""), " ", vbBack), ChrW(13), Space(1000))), 1000)), vbBack, " ")
MsgBox EndLine
End Sub
 
Bạn thử code này xem
PHP:
Sub Get_Last_Data_Line()
Dim EndLine As String
EndLine = ThisDocument.Tables(1).Cell(8, 5).Range.Text
EndLine = Replace(Trim(Right(Trim(Replace(Replace(Replace(EndLine, ChrW(7), ""), " ", vbBack), ChrW(13), Space(1000))), 1000)), vbBack, " ")
MsgBox EndLine
End Sub
Đã thử. OK ạ.
Nhìn code của bạn mới thấy Paragraphs của Wod cấu tạo cũng phức tạp thật.
Phải hiểu rõ bản chất mới thao tác được. Tks
 
Đã thử. OK ạ.
Nhìn code của bạn mới thấy Paragraphs của Wod cấu tạo cũng phức tạp thật.
Phải hiểu rõ bản chất mới thao tác được. Tks
Dòng code dài không phải do cấu trúc phức tạp gì đâu mà đó là đoạn xử lý chuỗi. Áp dụng thuật toán tách tên trong họ tên.
 
Web KT
Back
Top Bottom