Trợ giúp xác định table trong word dựa vào ký tự nằm trong table đó?

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

duy.tg

Thành viên mới
Tham gia
15/10/21
Bài viết
26
Được thích
14
1669831700554.png
Trong file word có thể rất nhiều table , có cách nào có thể xác định được đó là table nào dựa vào 1 từ khoá bất kỳ miễn là nằm trong table đó là được. Code dùng cho excel.
Mong được GPE trợ giúp!
 

File đính kèm

  • Testtable.docx
    13.1 KB · Đọc: 7
Do Table trong Word không có tên nên đánh dấu tạm bằng Comment vậy.
Mã:
Option Explicit

Public Sub FindTableBasedOnKeyword(Keyword As String)
    Dim objTable As Word.Table
    Dim colTables As Word.Tables
    Dim objCell As Word.Cell
    Dim objComment As Word.Comment
    For Each objComment In ActiveDocument.Comments
        If objComment.Range.Text = "Keyword " & Keyword & " found here." Then
            objComment.DeleteRecursively
        End If
    Next
    Set colTables = ActiveDocument.Tables
    For Each objTable In colTables
        For Each objCell In objTable.Range.Cells
            If InStr(1, objCell.Range.Text, Keyword, vbTextCompare) Then
                ActiveDocument.Comments.Add objCell.Range, "Keyword " & Keyword & " found here."
            End If
        Next
    Next
End Sub

Ví dụ, đánh dấu những Table chứa từ khóa "Hello":
Mã:
Private Sub Test()
    Call FindTableBasedOnKeyword("Hello")
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Giải thuật:
Duyệt qua từng Table, rồi tìm chuỗi trong Table đó, nếu tìm thấy chuỗi thì đó là cái cần tìm.
 
Upvote 0
Table chỉ là một kiểu sắp xếp chữ (chú ý tôi dùng từ chữ, không phải dữ liệu)
Dùng Word mà để cho nó đến độ "có thể rất nhiều table [sic]" là dùng không đúng.
Nên học lại cách sử dụng Word, sẽ có lợi hơn trong tường lai. Thay vì đi quanh co, ma-cơ-rô này nọ.
 
Upvote 0
#2:
Không cần đánh dấu gì cả. Thớt chỉ cần xác định được cái objTable thỏa điều kiện là được, phần còn lại thớt tự viết code tiếp.

Chú thêm: Thớt làm dịch vụ kế toán, mắc chỗ nào hỏi chỗ đó thôi, và thớt cần code dùng ở Excel (lưu ý dựng đối tượng MS Word dạng Late binding).

"Code dùng cho excel."
 
Upvote 0
#2:
Không cần đánh dấu gì cả. Thớt chỉ cần xác định được cái objTable thỏa điều kiện là được, phần còn lại thớt tự viết code tiếp.

Chú thêm: Thớt làm dịch vụ kế toán, mắc chỗ nào hỏi chỗ đó thôi, và thớt cần code dùng ở Excel (lưu ý dựng đối tượng MS Word dạng Late binding).

"Code dùng cho excel."
Cái này đúng là chủ thớt phải tự viết code, #2 chỉ là một cái sườn để chủ thớt tự ngâm cứu và viết tiếp.
 
Upvote 0
Table chỉ là một kiểu sắp xếp chữ (chú ý tôi dùng từ chữ, không phải dữ liệu)
Dùng Word mà để cho nó đến độ "có thể rất nhiều table [sic]" là dùng không đúng.
Cái này em đã lọ mọ thử và được rồi, mỗi tội xem lại lịch sử của chủ bài thấy "VT" nhiều quá nên thôi anh ạ.
 
Upvote 0
Table chỉ là một kiểu sắp xếp chữ (chú ý tôi dùng từ chữ, không phải dữ liệu)
Dùng Word mà để cho nó đến độ "có thể rất nhiều table [sic]" là dùng không đúng.
Nên học lại cách sử dụng Word, sẽ có lợi hơn trong tường lai. Thay vì đi quanh co, ma-cơ-rô này nọ.
Có thể là cách sử dụng word của mình không tốt nhưng mình thực sự không nghĩ ra cách nào nếu không dùng table mà trình bày văn bản cho đẹp, nếu được mong bạn chia sẽ cho mình được không ?
Ví dụ trình bày như trên mình ko dùng table thì mình không làm được như vậy (chỗ mình bôi màu đều là table cả)
 

File đính kèm

  • Untitled.png
    Untitled.png
    337.2 KB · Đọc: 19
Upvote 0
Giải thuật:
Duyệt qua từng Table, rồi tìm chuỗi trong Table đó, nếu tìm thấy chuỗi thì đó là cái cần tìm.
#2:
Không cần đánh dấu gì cả. Thớt chỉ cần xác định được cái objTable thỏa điều kiện là được, phần còn lại thớt tự viết code tiếp.

Chú thêm: Thớt làm dịch vụ kế toán, mắc chỗ nào hỏi chỗ đó thôi, và thớt cần code dùng ở Excel (lưu ý dựng đối tượng MS Word dạng Late binding).

"Code dùng cho excel."
E dù không phải dân chuyên nghiệp nhưng về riêng VBA không phải không biết gì, nếu đơn giản vậy thì e không hỏi đâu.
E cần tìm cái vị trí đó để đưa vào hàm tổng quát phục vụ cho cái file nhỏ dùng để xuất 1 lúc ra nhiều dạng văn bản khác nhau
 

File đính kèm

  • 1669878868235.png
    1669878868235.png
    262.2 KB · Đọc: 10
Upvote 0
E dù không phải dân chuyên nghiệp nhưng về riêng VBA không phải không biết gì, nếu đơn giản vậy thì e không hỏi đâu.
E cần tìm cái vị trí đó để đưa vào hàm tổng quát phục vụ cho cái file nhỏ dùng để xuất 1 lúc ra nhiều dạng văn bản khác nhau
Đứng ở khía cạnh người dùng như mình thì nhìn đẹp đấy, bố trí ngăn nắp. :wallbash: :wallbash: :wallbash:
Bạn đã viết được như thế này thì sửa lại code dễ mà. Xong thì nhớ share nhé (nếu được). :p:p:p
Còn bạn đang tìm chữ bên Word để thay thế = chuỗi bên Excel thì phải. Mail Merge nâng cao nhỉ?

Ban đầu mình lại tưởng loại khác nên hóng mãi. :wallbash::wallbash::wallbash:
VD như từ Excel muốn phi ngay đến Bảng có "tuổi nghỉ hưu" trong file "Nghị định 135/2020/NĐ-CP" để xem quy định ra sao.
 
Upvote 0
Có thể là cách sử dụng word của mình không tốt nhưng mình thực sự không nghĩ ra cách nào nếu không dùng table mà trình bày văn bản cho đẹp, nếu được mong bạn chia sẽ cho mình được không ?
Ví dụ trình bày như trên mình ko dùng table thì mình không làm được như vậy (chỗ mình bôi màu đều là table cả)
Table là cách trình bày cũ xưa. Nó là cách nhanh chóng để format câu cú theo cột.
Bây giờ, table chỉ dùng để trình bày... bảng.

Vì vậy:
Tôi không hề nói rằng "bây giờ không ai dùng tables". Tôi chỉ nói rằng: những người theo kiểu xưa vẫn còn thói lạm dụng table để format cột.

Trong ví dụ của bạn, chỉ có phần màu xanh lá cây là càn dùng table, bởi vì nó thực sự là một bảng..
Tất cả các màu còn lại, tôi đều có thể dùng Tabs và Styles.

1669889905660.png

Đối với người không biết sử dụng Tabs thì thấy chật vật. Nhưng người quen dùng thì nó rất nhanh bởi vì Style có thể copy và chỉnh sửa dễ dàng, Table không dễ như vậy.
 
Upvote 0
Đối với người không biết sử dụng Tabs thì thấy chật vật. Nhưng người quen dùng thì nó rất nhanh bởi vì Style có thể copy và chỉnh sửa dễ dàng, Table không dễ như vậy.
Cám ơn bạn đã chia sẻ ! Dùng tabs là phương án hay, chỉ cần thay đổi thói quen 1 chút là được. Ảnh mình dùng tab cũng gần đc như table vậy nhưng tiết kiệm thời gian hơn
1669903940321.png
Bài đã được tự động gộp:

Bài này mình chuyển hướng rồi, chỉ cần kiểm tra trong bảng có bao nhiêu table là được rồi. Không cần tìm theo ký tự nữa. Cám ơn các bạn
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom