Code lấy từ khóa từ Word sang excel bị thiếu

Liên hệ QC

vc_đi chơi

Thành viên hoạt động
Tham gia
21/9/19
Bài viết
159
Được thích
32
Thưa các bác và các bạn.
Tôi có sử dụng đoạn code, phím chạy code là (Ctrl + Shift + W) để lấy từ khóa từ file Word sang file excel chứa trong cùng một foder
Các từ khóa trong Word được bôi đỏ mã màu RGB (255, 0, 0)
Khi mở file Excel và chạy code bằng phím tắt nói trên thì các từ khóa được lấy sang cột B của sheet Data, nhưng code lại không lấy được hết từ khóa trong file word có tên là (File_Mau) (như hình tôi đăng)
Nhờ các các bạn giúp tôi để lấy được từ khóa đầy đủ từ Word (File_Mau) sang cột B của sheet (Data) trong file excel.
Xin sự giúp đỡ từ các bác, mong hồi âm, xin cảm ơn.
1/ hình thứ nhất: file word ban đầu
2/ hình thứ hai: từ khóa được lấy sang file excel khi chạy code
3/ hình thứ 3: khi chạy code sẽ xuất 1 file word mới (có tên là "biên bản hiện trường") ứng với tên được điền trong sheet (Trang chu), các từ khóa bị thiếu chưa được lấy trong file word (File_Mau) xuất ra file word mới (biên bản hiện trường) vẫn còn màu đỏ.
Tôi có đính kèm file ở dưới, file excel và word đều trong một foder, khi chạy code cũng phải để trong cùng một foder
View attachment 225561View attachment 225562View attachment 225563
Bài đã được tự động gộp:

file Word.png

Key duoc lay.png

Tu khoa con thieu.png
 

File đính kèm

  • file.rar
    62.6 KB · Đọc: 20
Lần chỉnh sửa cuối:
Tại em chưa có ý tưởng nên khi chạy code mới phát hiện ra vậy ạ!
Vâng, em cám ơn thầy, vậy nhờ thầy giúp em một lần cuối nhé!
Em tổng hợp mấy vấn đề sau xin được thầy giúp ạ!
1/ Xóa từ khóa trong File_Mau: Khi xóa từ khóa trong File_Mau và lấy lại [Key] mới sang file excel thì những [key] bị xóa trong word cũng tự động bị xóa đi trong excel và các nội dung tương ứng với [key] bị xóa đó ở các cột B, cột C …vv… trong sheet Data của file excel cũng bị xóa .
2/ Thêm từ khóa trong File_Mau: trường hợp thêm từ khóa trong File_Mau thì ở sheet Data những từ khóa và các nội dung tương ứng đã được điền trước đó vẫn được giữ nguyên, từ khóa mới thêm vào ở vị trí nào trong File_Mau thì khi lấy [key] sang file excel theo đúng thứ tự từ trên xuống dưới trong trang File_Mau.
3/ Xuất danh mục văn bản trong file Word mới tạo ra: Khi xuất ra file Word mới có tên như tên chọn trong ô B2 của sheet TrangChu thì có thể xuất tiếp “List danh mục biên bản “ ra file Excel có tên: “List_Tên được chọn trong ô B2 của sheet TrangChu” [có hình đính kèm]

List danh mục này có tên: “List_Tên được chọn trong ô B2 của sheet TrangChu” tạo ra có luật như sau:
Cột “Nội dung văn bản” (Cột B) sẽ lấy các từ có mã màu dạng RGB (0,0,255)
Cột “Số văn bản” (Cột C) sẽ lấy các từ có mã màu dạng RGB (51,51,153)
Cột “Ngày tháng ban hành” (Cột D) sẽ lấy các từ có mã màu dạng RGB (153,0,204) và có định dạng chung.

Theo thứ tự từ đầu đến cuối trang của file word mới được tạo ra thì 03 nội dung tương ứng với 3 mã màu trên chỉ xét trong phạm vi trang đầu tiên xuất hiện cả 03 mã màu đó sẽ tương ứng với số thứ tự là 01 ở cột A , xét tiếp đến trong phạm vi trang thứ 2 chứa cả 03 mã màu đó sẽ tương ứng với số thứ tự 02 và nội dung được điền vào dòng số thứ tự 02 ở các cột B, cột C, cột D trong List_Tên được chọn trong ô B2 của sheet TrangChu .
Số thứ tự được điện tự động theo trình tự xuất hiện của trang trong file word mới xét theo chiều từ đầu đến cuối trang.
(Số thứ tự và nội dung được tạo ra tương ứng với số thứ tự trang trong file word mới mà trang đó phải tính có cả 03 mã màu thì gọi là số thứ tự số 01, xét tiếp trang nào chữa cả 03 mã màu thì gọi là trang thứ 2….theo thứ tự từ đầu đến cuối file Word mới)

Em diễn giải dài dòng quá! thầy giúp em mới ạ!
Em cám ơn Thầy!
View attachment 225828
Nhìu vấn đề đó em gái.
Cái mà [key] bị đảo khi chạy code tui cũng biết, cái đó anh batman1 đã giải quyết rồi thây
 
Upvote 0
Đang chờ bác batman1 đây mà! thôi ngủ thôi
Bạn chờ cái gì? Yêu cầu của bạn tôi đã đáp ứng. Về yêu cầu của Cát Lượng thì tôi đang chờ khẳng định hết các yêu cầu vì tôi chỉ làm 1 lần nữa.

Tôi chờ chứ không phải ai chờ tôi.
 
Upvote 0
Bạn chờ cái gì? Yêu cầu của bạn tôi đã đáp ứng. Về yêu cầu của Cát Lượng thì tôi đang chờ khẳng định hết các yêu cầu vì tôi chỉ làm 1 lần nữa.

Tôi chờ chứ không phải ai chờ tôi.
Chúc Thầy ngày mới nhiều niềm vui!
Các vấn đề em nêu ở bài #20, em đã tổng hợp lại, có thể diễn giải hơi dài.
Đó là hết các yêu cầu của em đã nêu ra.
Mong thầy giúp em một lần nữa.
 
Upvote 0
2/ Thêm từ khóa trong File_Mau: trường hợp thêm từ khóa trong File_Mau thì ở sheet Data những từ khóa và các nội dung tương ứng đã được điền trước đó vẫn được giữ nguyên, từ khóa mới thêm vào ở vị trí nào trong File_Mau thì khi lấy [key] sang file excel theo đúng thứ tự từ trên xuống dưới trong trang File_Mau.
Thứ tự để mà làm gì? Thứ tự nào mà chả được, miễn khi xuất ra tập tin Word thì xuất chuẩn.

Những Key mới thêm tôi cho vào các dòng cuối. Các key bị xóa sẽ biến mất khỏi sheet Data.

Vẫn toàn bộ code của bài #6 nhưng riêng sub ChuongTrinh thì thay bằng
Mã:
Sub ChuongTrinh()
Dim Arr(), lastRow As Long, lastCol As Long, r As Long, c As Long, count As Long, curr_pos As Long
Dim text As String, wordApp As Object, wordDoc As Object, wordSelection As Object, dic As Object
    Application.ScreenUpdating = False
    With CreateObject("Scripting.FileSystemObject")
        If .FileExists(ThisWorkbook.Path & "\" & "File_Mau.doc") = False Then
            MsgBox "Khong co tap tin File_Mau.doc"
            Exit Sub
        End If
    End With
    Set dic = CreateObject("Scripting.Dictionary")
    dic.comparemode = vbTextCompare
'    ---------- ghi KEY da co vao dic - bat dau ------------
    With ThisWorkbook.Worksheets("Data")
        lastCol = .Cells(2, Columns.count).End(xlToLeft).Column
        lastRow = .Cells(Rows.count, "B").End(xlUp).Row
        With .Range("B3").Resize(5000, lastCol - 1)
            Arr = .Value
            If lastRow > 2 Then .Resize(lastRow - 2).ClearContents
        End With
    End With
    For r = 1 To lastRow - 2
        If Arr(r, 1) <> "" Then dic.Add Arr(r, 1), "loai_bo"
    Next r
'    ---------- ghi KEY da co vao dic - ket thuc ------------
    Set wordApp = CreateObject("Word.Application")
    Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\File_Mau.doc")
    Set wordSelection = wordApp.Selection
    count = lastRow - 2
    With wordSelection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .text = "\[*\]"
        .MatchWildcards = True
        Do While .Execute
            text = wordSelection.text
            If Not dic.exists(text) Then
                dic.Add text, ""
                count = count + 1
                Arr(count, 1) = text
            Else
                dic.Item(text) = ""
            End If
        Loop
    End With
    For r = 1 To lastRow - 2
        If dic.exists(Arr(r, 1)) Then
            If dic.Item(Arr(r, 1)) = "" Then
                curr_pos = curr_pos + 1
                For c = 1 To UBound(Arr, 2)
                    Arr(curr_pos, c) = Arr(r, c)
                Next c
            End If
        End If
    Next r
    For r = lastRow - 1 To count
        curr_pos = curr_pos + 1
        For c = 1 To UBound(Arr, 2)
            Arr(curr_pos, c) = Arr(r, c)
        Next c
    Next r
    
    If curr_pos Then ThisWorkbook.Worksheets("Data").Range("B3").Resize(curr_pos, UBound(Arr, 2)).Value = Arr
    Set dic = Nothing
    wordDoc.Close False
    Set wordDoc = Nothing
    wordApp.Quit
    Set wordApp = Nothing
End Sub

List danh mục này có tên: “List_Tên được chọn trong ô B2 của sheet TrangChu” tạo ra có luật như sau:
Giả sử B2 = "Biên bản hiện trường". Lúc đó “List_Tên được chọn trong ô B2 của sheet TrangChu” là "List_Biên bản hiện trường". Cái "List_Biên bản hiện trường" là tên của cái gì? Nếu đó là tên của sheet tạo mới mà trong đó sẽ có bảng như trong hình thì đừng gọi đó là tên của "List Danh mục". Vì "List Danh mục" nó là cái gì? Là tên của bảng gồm 3 cột B, C và D trong cái sheet "Trang_tính1" kia?

Tóm lại có phải là: tạo sheet mới và đặt tên là "List_Biên bản hiện trường". Và trong đó có dữ liệu của 3 cột B, C và D? Thế nếu sau đó, sau một thời gian, lại chọn B2 = Biên bản hiện trường thì có tạo sheet mới "List_Biên bản hiện trường" không? Xóa "List_Biên bản hiện trường" cũ lập "List_Biên bản hiện trường" mới?

Không hiểu ý nên tôi không giúp được. Mà tốt nhất là sau khi giải thích thì đính kèm tập tin của mình. Tập tin của chủ thớt là dùng cho yêu cầu của chủ thớt. Bạn thêm vài yêu cầu thì phải đính kèm tập tin của mình. Tôi không chơi trò "nói suông", "đoán ý đồng đội". Đính kèm tập tin và tự tạo bằng tay cái gọi là "List Danh mục" với nội dung đầy đủ ứng với tập tin File_Mau. Nó ở sheet nào tên gì phải ghi đúng chỗ.
 
Upvote 0
Thứ tự để mà làm gì? Thứ tự nào mà chả được, miễn khi xuất ra tập tin Word thì xuất chuẩn.

Những Key mới thêm tôi cho vào các dòng cuối. Các key bị xóa sẽ biến mất khỏi sheet Data.

Vẫn toàn bộ code của bài #6 nhưng riêng sub ChuongTrinh thì thay bằng
Mã:
Sub ChuongTrinh()
Dim Arr(), lastRow As Long, lastCol As Long, r As Long, c As Long, count As Long, curr_pos As Long
Dim text As String, wordApp As Object, wordDoc As Object, wordSelection As Object, dic As Object
    Application.ScreenUpdating = False
    With CreateObject("Scripting.FileSystemObject")
        If .FileExists(ThisWorkbook.Path & "\" & "File_Mau.doc") = False Then
            MsgBox "Khong co tap tin File_Mau.doc"
            Exit Sub
        End If
    End With
    Set dic = CreateObject("Scripting.Dictionary")
    dic.comparemode = vbTextCompare
'    ---------- ghi KEY da co vao dic - bat dau ------------
    With ThisWorkbook.Worksheets("Data")
        lastCol = .Cells(2, Columns.count).End(xlToLeft).Column
        lastRow = .Cells(Rows.count, "B").End(xlUp).Row
        With .Range("B3").Resize(5000, lastCol - 1)
            Arr = .Value
            If lastRow > 2 Then .Resize(lastRow - 2).ClearContents
        End With
    End With
    For r = 1 To lastRow - 2
        If Arr(r, 1) <> "" Then dic.Add Arr(r, 1), "loai_bo"
    Next r
'    ---------- ghi KEY da co vao dic - ket thuc ------------
    Set wordApp = CreateObject("Word.Application")
    Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\File_Mau.doc")
    Set wordSelection = wordApp.Selection
    count = lastRow - 2
    With wordSelection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .text = "\[*\]"
        .MatchWildcards = True
        Do While .Execute
            text = wordSelection.text
            If Not dic.exists(text) Then
                dic.Add text, ""
                count = count + 1
                Arr(count, 1) = text
            Else
                dic.Item(text) = ""
            End If
        Loop
    End With
    For r = 1 To lastRow - 2
        If dic.exists(Arr(r, 1)) Then
            If dic.Item(Arr(r, 1)) = "" Then
                curr_pos = curr_pos + 1
                For c = 1 To UBound(Arr, 2)
                    Arr(curr_pos, c) = Arr(r, c)
                Next c
            End If
        End If
    Next r
    For r = lastRow - 1 To count
        curr_pos = curr_pos + 1
        For c = 1 To UBound(Arr, 2)
            Arr(curr_pos, c) = Arr(r, c)
        Next c
    Next r

    If curr_pos Then ThisWorkbook.Worksheets("Data").Range("B3").Resize(curr_pos, UBound(Arr, 2)).Value = Arr
    Set dic = Nothing
    wordDoc.Close False
    Set wordDoc = Nothing
    wordApp.Quit
    Set wordApp = Nothing
End Sub


Giả sử B2 = "Biên bản hiện trường". Lúc đó “List_Tên được chọn trong ô B2 của sheet TrangChu” là "List_Biên bản hiện trường". Cái "List_Biên bản hiện trường" là tên của cái gì? Nếu đó là tên của sheet tạo mới mà trong đó sẽ có bảng như trong hình thì đừng gọi đó là tên của "List Danh mục". Vì "List Danh mục" nó là cái gì? Là tên của bảng gồm 3 cột B, C và D trong cái sheet "Trang_tính1" kia?

Tóm lại có phải là: tạo sheet mới và đặt tên là "List_Biên bản hiện trường". Và trong đó có dữ liệu của 3 cột B, C và D? Thế nếu sau đó, sau một thời gian, lại chọn B2 = Biên bản hiện trường thì có tạo sheet mới "List_Biên bản hiện trường" không? Xóa "List_Biên bản hiện trường" cũ lập "List_Biên bản hiện trường" mới?

Không hiểu ý nên tôi không giúp được. Mà tốt nhất là sau khi giải thích thì đính kèm tập tin của mình. Tập tin của chủ thớt là dùng cho yêu cầu của chủ thớt. Bạn thêm vài yêu cầu thì phải đính kèm tập tin của mình. Tôi không chơi trò "nói suông", "đoán ý đồng đội". Đính kèm tập tin và tự tạo bằng tay cái gọi là "List Danh mục" với nội dung đầy đủ ứng với tập tin File_Mau. Nó ở sheet nào tên gì phải ghi đúng chỗ.
Vâng, mục đích của em cũng là trình bày văn bản thông qua excel nên em đọc được chủ đề này tải luôn file đó xuống và xem.
Xin phép Thầy và anh vc_đi chơi em lấy chủ đề chính để cho mọi người tiện theo dõi.
Ý thầy nêu cuối bài đúng là em diễn giải còn lủng củng quá! Thầy nói em mới vỡ nghĩa ra, em xin được diễn gải lại như sau:
Vấn đề tạo ra file excel có tên "Danh Muc" chứa nội dung, số văn bản, ngày tháng ban hành từ file word mới được tạo ra:
Sau khi tạo file word mới có tên là "Tên được chọn trong ô B2 của sheet TrangChu"
Chạy tiếp Sub nào đó thì sẽ tạo ra 1 file Excel (sau khi thầy phân tích vấn đề nêu trên thì em có ý chỉ tạo ra một file excel có tên là “Danh muc”) các sheet của file excel này sẽ có nội dung gồm 01 cột ghi chú, và 03 cột như sau:
Cột “Nội dung văn bản” (Cột B) sẽ lấy các từ có mã màu dạng RGB (0,0,255)
Cột “Số văn bản” (Cột C) sẽ lấy các từ có mã màu dạng RGB (51,51,153)
Cột “Ngày tháng ban hành” (Cột D) sẽ lấy các từ có mã màu dạng RGB (153,0,204) và có định dạng chung.

Tên của sheet trong file excel “Danh Muc” được đặt tên theo file word mới xuất ra và bỏ dấu tiếng việt, nó cũng là tên “Tên được chọn trong ô B2 của sheet TrangChu" (bỏ dấu tiếng việt)

Theo thứ tự từ đầu đến cuối trang của file word mới được tạo ra thì 03 nội dung tương ứng với 3 mã màu trên chỉ xét trong phạm vi trang đầu tiên xuất hiện cả 03 mã màu đó sẽ tương ứng với số thứ tự là 01 ở cột A , xét tiếp đến trong phạm vi trang thứ 2 chứa cả 03 mã màu đó sẽ tương ứng với số thứ tự 02 và nội dung được điền vào dòng số thứ tự 02 ở các cột B, cột C, cột D trong sheet của file excel “Danh Muc”

Sau một thời gian nếu chọn tên ở ô B2 của sheet TrangChu trùng với tên đã chọn trước đó thì sheet mới trong file excel “Danh Muc” sẽ được tạo nên, sheet mới này sẽ thay thế toàn bộ nội dung có trong sheet cũ đã được tạo trước đó.

Ví dụ cụ thể:
Giả sử ban đầu tạo được một file word mới có tên “Biên bản hiện trường” sau đó chạy Sub nào đó sẽ tạo ra một file excel có tên “Danh Muc” và Sheet sẽ xuất hiện trong File “Danh Muc” sẽ có tên là (Bien ban hien truong), nội dung trong sheet này gồm các cột Stt, Nội dung văn bản, Số văn bản, ngày tháng ban hành, ghi chú như trình bày ở trên.

pl.png
 

File đính kèm

  • File chot.rar
    61 KB · Đọc: 7
Lần chỉnh sửa cuối:
Upvote 0
Vâng, mục đích của em cũng là trình bày văn bản thông qua excel nên em đọc được chủ đề này tải luôn file đó xuống và xem.
Bạn giải thích vẫn còn rối rắm. Nhưng thôi, tôi hình như đã đoán được ý. Tóm lại là bạn có tập tin Word chứa nhiều tài liệu khác nhau. Như trong tập tin Word đính kèm thì có 2 văn bản là "Biên bản hiện trường" (trang 1 và 2) và "Biên bản xử phạt" (trang 3). Nội dung cho 3 cột B, C và D của sheet trong tập tin "Danh mục" là lấy từ 1 cột duy nhất - cột Data!B của tập tin Excel gốc - tương ứng với "Tên", "Số" và "ngày tháng".
Tôi đề nghị:
1. Không có chuyện mỗi lần chạy code là tạo tập tin "Danh muc.xlsx". Tập tin này chỉ có 1 và bạn tự tạo. Khi chạy code thì code sẽ xóa trong "Danh muc.xlsx" sheet có tên là Trang Chu!B2 nếu đã có, và tạo mới sheet có tên như thế.

2. Không "đánh dấu" 3 mã "Tên", "Số" và "ngày tháng" bằng mầu. Trong tập tin File_Mau riêng 3 trường "Tên", "Số" và "ngày tháng" sẽ có các tiền tố "tenvb_", "sovb_" và "ngayvb_". Tức trong tập tin ví dụ sẽ phải là: [tenvb_TÊN BIÊN BẢN], [sovb_số bb], [ngayvb_ngày, tháng, năm] và ... [tenvb_BIÊN BẢN XỬ PHẠT], [sovb_bbxp], [ngayvb_ngày…tháng…. Năm xp]. Các mã khác không được phép có 3 tền tố "tenvb_", "sovb_" và "ngayvb_"

Để giải quyết yêu cầu thứ 3 này thì tốt nhất trong Data!B cần liệt kê các mã theo thứ tự. Trước đó trong khi chờ bổ sung yêu cầu thì tôi đã làm cho yêu cầu thêm bớt mã và tôi đặt các mã mới ở cuối. Do lười sửa lại nên tôi nói thứ tự không cần thiết. Nhưng bây giờ để dễ cho yêu cầu Danh mục thì tôi sẽ liệt kê mã theo thứ tự.

Tôi sẽ thử làm khi bạn khẳng định có chấp nhận các yêu cầu trên của tôi không. Nếu bạn chấp nhận thì gửi lại tập tin File_mau không cần có 3 mầu nhưng phải có 3 tiền tố đã nêu cho 3 mã "Tên", "Số" và "ngày tháng". 3 tiền tố này sẽ giúp xác định vị trí của 3 mã ở cột Data!B. Từ đó chỉ việc dịch sang phải tới cột tương ứng với Trang Chu!B2 được chọn để đọc ra dữ liệu.
 
Upvote 0
Bạn giải thích vẫn còn rối rắm. Nhưng thôi, tôi hình như đã đoán được ý. Tóm lại là bạn có tập tin Word chứa nhiều tài liệu khác nhau. Như trong tập tin Word đính kèm thì có 2 văn bản là "Biên bản hiện trường" (trang 1 và 2) và "Biên bản xử phạt" (trang 3). Nội dung cho 3 cột B, C và D của sheet trong tập tin "Danh mục" là lấy từ 1 cột duy nhất - cột Data!B của tập tin Excel gốc - tương ứng với "Tên", "Số" và "ngày tháng".
Tôi đề nghị:
1. Không có chuyện mỗi lần chạy code là tạo tập tin "Danh muc.xlsx". Tập tin này chỉ có 1 và bạn tự tạo. Khi chạy code thì code sẽ xóa trong "Danh muc.xlsx" sheet có tên là Trang Chu!B2 nếu đã có, và tạo mới sheet có tên như thế.

2. Không "đánh dấu" 3 mã "Tên", "Số" và "ngày tháng" bằng mầu. Trong tập tin File_Mau riêng 3 trường "Tên", "Số" và "ngày tháng" sẽ có các tiền tố "tenvb_", "sovb_" và "ngayvb_". Tức trong tập tin ví dụ sẽ phải là: [tenvb_TÊN BIÊN BẢN], [sovb_số bb], [ngayvb_ngày, tháng, năm] và ... [tenvb_BIÊN BẢN XỬ PHẠT], [sovb_bbxp], [ngayvb_ngày…tháng…. Năm xp]. Các mã khác không được phép có 3 tền tố "tenvb_", "sovb_" và "ngayvb_"

Để giải quyết yêu cầu thứ 3 này thì tốt nhất trong Data!B cần liệt kê các mã theo thứ tự. Trước đó trong khi chờ bổ sung yêu cầu thì tôi đã làm cho yêu cầu thêm bớt mã và tôi đặt các mã mới ở cuối. Do lười sửa lại nên tôi nói thứ tự không cần thiết. Nhưng bây giờ để dễ cho yêu cầu Danh mục thì tôi sẽ liệt kê mã theo thứ tự.

Tôi sẽ thử làm khi bạn khẳng định có chấp nhận các yêu cầu trên của tôi không. Nếu bạn chấp nhận thì gửi lại tập tin File_mau không cần có 3 mầu nhưng phải có 3 tiền tố đã nêu cho 3 mã "Tên", "Số" và "ngày tháng". 3 tiền tố này sẽ giúp xác định vị trí của 3 mã ở cột Data!B. Từ đó chỉ việc dịch sang phải tới cột tương ứng với Trang Chu!B2 được chọn để đọc ra dữ liệu.
Vâng em cám ơn Thầy!
Thầy diễn giải rất dễ hiểu và đúng ý của em.
Bạn giải thích vẫn còn rối rắm. Nhưng thôi, tôi hình như đã đoán được ý. Tóm lại là bạn có tập tin Word chứa nhiều tài liệu khác nhau. Như trong tập tin Word đính kèm thì có 2 văn bản là "Biên bản hiện trường" (trang 1 và 2) và "Biên bản xử phạt" (trang 3). Nội dung cho 3 cột B, C và D của sheet trong tập tin "Danh mục" là lấy từ 1 cột duy nhất - cột Data!B của tập tin Excel gốc - tương ứng với "Tên", "Số" và "ngày tháng".
Tôi đề nghị:
1. Không có chuyện mỗi lần chạy code là tạo tập tin "Danh muc.xlsx". Tập tin này chỉ có 1 và bạn tự tạo. Khi chạy code thì code sẽ xóa trong "Danh muc.xlsx" sheet có tên là Trang Chu!B2 nếu đã có, và tạo mới sheet có tên như thế.

2. Không "đánh dấu" 3 mã "Tên", "Số" và "ngày tháng" bằng mầu. Trong tập tin File_Mau riêng 3 trường "Tên", "Số" và "ngày tháng" sẽ có các tiền tố "tenvb_", "sovb_" và "ngayvb_". Tức trong tập tin ví dụ sẽ phải là: [tenvb_TÊN BIÊN BẢN], [sovb_số bb], [ngayvb_ngày, tháng, năm] và ... [tenvb_BIÊN BẢN XỬ PHẠT], [sovb_bbxp], [ngayvb_ngày…tháng…. Năm xp]. Các mã khác không được phép có 3 tền tố "tenvb_", "sovb_" và "ngayvb_"

Để giải quyết yêu cầu thứ 3 này thì tốt nhất trong Data!B cần liệt kê các mã theo thứ tự. Trước đó trong khi chờ bổ sung yêu cầu thì tôi đã làm cho yêu cầu thêm bớt mã và tôi đặt các mã mới ở cuối. Do lười sửa lại nên tôi nói thứ tự không cần thiết. Nhưng bây giờ để dễ cho yêu cầu Danh mục thì tôi sẽ liệt kê mã theo thứ tự.

Tôi sẽ thử làm khi bạn khẳng định có chấp nhận các yêu cầu trên của tôi không. Nếu bạn chấp nhận thì gửi lại tập tin File_mau không cần có 3 mầu nhưng phải có 3 tiền tố đã nêu cho 3 mã "Tên", "Số" và "ngày tháng". 3 tiền tố này sẽ giúp xác định vị trí của 3 mã ở cột Data!B. Từ đó chỉ việc dịch sang phải tới cột tương ứng với Trang Chu!B2 được chọn để đọc ra dữ liệu.
Vâng thầy diễn giải rất dễ hiểu và đúng ý em.
Em rất đồng ý với yêu cầu mà thầy đã nêu trên
Em xin gửi lại file thầy giúp em mới nhé!
 

File đính kèm

  • File chot_ok.rar
    60.8 KB · Đọc: 8
Upvote 0
Vâng thầy diễn giải rất dễ hiểu và đúng ý em.
Em rất đồng ý với yêu cầu mà thầy đã nêu trên
Em xin gửi lại file thầy giúp em mới nhé!
Bạn xem và kiểm tra tập tin đính kèm.

Lưu ý:
1. Về các mã có tiền tố tenvb_, sovb_ và ngayvb_
Tôi không biết đặc thù các văn bản trong File_Mau của bạn như thế nào nhưng tôi nghĩ là chỉ tenvb_ là luôn có trong mỗi văn bản. Có thể ai đó có File_Mau với cấu trúc hơi khác và rất có thể tất cả hoặc một số văn bản trong File_Mau không có sovb_ và/hoặc ngayvb_. Và tôi không biết bạn có thế nào nhưng ai đó có thể có 3 mã kia với thứ tự bất kỳ. Trong File_Mau có thể do đặc thù văn bản mà tenvb_ xuất hiện trước sovb_ nhưng ở văn bản khác thì ngược lại. Do tôi viết không chỉ cho mình bạn, vì viết cho 1 người hơi phí công, nên tôi giả thiết là 3 mã kia không bắt buộc có đồng thời trong mỗi văn bản, và chúng có thể ở thứ tự bất kỳ.
Nhưng với giả thiết như thế thì phát sinh vấn đề "không xác định". Chẳng hạn có:
[tenvb_TÊN BIÊN BẢN]
[sovb_số bb]
[ngayvb_ngày, tháng, năm]
[tenvb_BIÊN BẢN XỬ PHẠT]


Thì không biết được [sovb_số bb] và [ngayvb_ngày, tháng, năm] thuộc văn bản 1 hay thuộc văn bản 2.

Yêu cầu: Ở đầu mỗi văn bản phải có mã [vanban_***]. *** là số hoặc chuỗi bất kỳ nhưng phải thỏa điều kiện là mỗi mã như thế chỉ xuất hiện trong 1 văn bản. Tức trong văn bản 1 có thể là [VANBAN_12] (không phân biệt hoa thường), trong văn bản 2 lại là [VANBAN_hichic], nhưng [VANBAN_12] không thể xuất hiện trong văn bản 2 (không chỉ ở đầu mà còn ở chỗ bất kỳ), còn [VANBAN_hichic] không thể xuất hiện ở văn bản 1. Chúng phải duy nhất cho mỗi văn bản.

Tất nhiên [VanBan_***] chỉ xuất hiện ở File_MAU và trong sheet Data dòng ứng với mỗi mã đó là rỗng. Khi tạo tập tin Word có tên ở B2 thì những mã đó sẽ được thay bằng chuỗi rỗng - tức bị xóa đi.

Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau.

2. Mỗi mã trong phạm vi 1 văn bản có thể lặp lại nhiều lần, nhưng một mã không được phép xuất hiện ở >= 2 văn bản.

3. Toàn bộ code của tôi có trong Module2 và sheet "Trang Chu".

4. Khi TrangChu!B2 thay đổi thì code gọi Sub createWordAndSheet để tạo sheet trong tập tin "Danh Muc.xlsx", sau đó tạo tập tin Word.

5. Code tạo sheet với tên tiếng Việt nếu B2 là tiếng Việt. Nếu bạn muốn tên không dấu thì tự tìm hàm chuyển chuỗi có dấu thành không dấu. Bạn có thể tìm trên GPE - tôi không tìm hộ bạn. Hàm nhận 1 tham số là chuỗi có dấu hoặc không và trả về kết quả là chuỗi không dấu. Giả sử hàm đó tên là khongdau thì trong Sub createWordAndSheet bạn hãy thay (chỉ có 1)
Mã:
sheetname = filename
thành
Mã:
sheetname = khongdau(filename)

Các lưu ý bạn nên ghi vào sheet Trang Chu để khỏi quên.
 

File đính kèm

  • Word _Excel.xls
    193.5 KB · Đọc: 18
Upvote 0
Bạn xem và kiểm tra tập tin đính kèm.

Lưu ý:
1. Về các mã có tiền tố tenvb_, sovb_ và ngayvb_
Tôi không biết đặc thù các văn bản trong File_Mau của bạn như thế nào nhưng tôi nghĩ là chỉ tenvb_ là luôn có trong mỗi văn bản. Có thể ai đó có File_Mau với cấu trúc hơi khác và rất có thể tất cả hoặc một số văn bản trong File_Mau không có sovb_ và/hoặc ngayvb_. Và tôi không biết bạn có thế nào nhưng ai đó có thể có 3 mã kia với thứ tự bất kỳ. Trong File_Mau có thể do đặc thù văn bản mà tenvb_ xuất hiện trước sovb_ nhưng ở văn bản khác thì ngược lại. Do tôi viết không chỉ cho mình bạn, vì viết cho 1 người hơi phí công, nên tôi giả thiết là 3 mã kia không bắt buộc có đồng thời trong mỗi văn bản, và chúng có thể ở thứ tự bất kỳ.
Nhưng với giả thiết như thế thì phát sinh vấn đề "không xác định". Chẳng hạn có:
[tenvb_TÊN BIÊN BẢN]
[sovb_số bb]
[ngayvb_ngày, tháng, năm]
[tenvb_BIÊN BẢN XỬ PHẠT]


Thì không biết được [sovb_số bb] và [ngayvb_ngày, tháng, năm] thuộc văn bản 1 hay thuộc văn bản 2.

Yêu cầu: Ở đầu mỗi văn bản phải có mã [vanban_***]. *** là số hoặc chuỗi bất kỳ nhưng phải thỏa điều kiện là mỗi mã như thế chỉ xuất hiện trong 1 văn bản. Tức trong văn bản 1 có thể là [VANBAN_12] (không phân biệt hoa thường), trong văn bản 2 lại là [VANBAN_hichic], nhưng [VANBAN_12] không thể xuất hiện trong văn bản 2 (không chỉ ở đầu mà còn ở chỗ bất kỳ), còn [VANBAN_hichic] không thể xuất hiện ở văn bản 1. Chúng phải duy nhất cho mỗi văn bản.

Tất nhiên [VanBan_***] chỉ xuất hiện ở File_MAU và trong sheet Data dòng ứng với mỗi mã đó là rỗng. Khi tạo tập tin Word có tên ở B2 thì những mã đó sẽ được thay bằng chuỗi rỗng - tức bị xóa đi.

Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau.

2. Mỗi mã trong phạm vi 1 văn bản có thể lặp lại nhiều lần, nhưng một mã không được phép xuất hiện ở >= 2 văn bản.

3. Toàn bộ code của tôi có trong Module2 và sheet "Trang Chu".

4. Khi TrangChu!B2 thay đổi thì code gọi Sub createWordAndSheet để tạo sheet trong tập tin "Danh Muc.xlsx", sau đó tạo tập tin Word.

5. Code tạo sheet với tên tiếng Việt nếu B2 là tiếng Việt. Nếu bạn muốn tên không dấu thì tự tìm hàm chuyển chuỗi có dấu thành không dấu. Bạn có thể tìm trên GPE - tôi không tìm hộ bạn. Hàm nhận 1 tham số là chuỗi có dấu hoặc không và trả về kết quả là chuỗi không dấu. Giả sử hàm đó tên là khongdau thì trong Sub createWordAndSheet bạn hãy thay (chỉ có 1)
Mã:
sheetname = filename
thành
Mã:
sheetname = khongdau(filename)

Các lưu ý bạn nên ghi vào sheet Trang Chu để khỏi quên.
Vâng! em cám ơn Thầy.
Em làm như sau:
Em đặt tên các từ khóa có lấy [Key] để xuất ra file Excel có tên "Danh Muc" lần lượt là:
Ở văn bản thứ nhất:
[vanban_TÊN BIÊN BẢN]
[vanban_sovb]
[vanban_ngaythangnam1]

Sang văn bản thứ 2:
[vanban_Xuphat]
[vanban_Sovbxp]
[vanban_ngaythangnam2]

Và chạy Sub Sub ReadKeysFromWord để lấy [key]
Tiếp theo chọn TrangChu!B2 thay đổi thì code gọi Sub createWordAndSheet để tạo sheet trong tập tin "Danh Muc.xlsx", sau đó tạo tập tin Word
Khi tạo file word mới thì hoàn thành, nhưng khi tạo sheet trong tập tin "Danh Muc.xlsx" thì báo lỗi
Chả hạn chọn tên ô B2 trong sheet TrangChu là "Biên bản hiện trường" thì chỉ xuất hiện sheet "Biên bản hiện trường" trống không có dữ liệu.

Vấn đề thêm từ khóa vào File_Mau và lấy [key] mới thì các nội dung tương ứng với [key] cũ lại bị mất thầy ạ! (như vậy phải điền lại sau mỗi lần chèn thêm từ khóa vào File_Mau) , vấn đề mà thầy đã trả lời ở bài #30: "/ Thêm từ khóa trong File_Mau: trường hợp thêm từ khóa trong File_Mau thì ở sheet Data những từ khóa và các nội dung tương ứng đã được điền trước đó vẫn được giữ nguyên, từ khóa mới thêm vào ở vị trí nào trong File_Mau thì khi lấy [key] sang file excel theo đúng thứ tự từ trên xuống dưới trong trang File_Mau." (em vô ý lại k nhắc lại khi thầy sửa lại dùm em)
Thầy xem giúp em chút ạ!

truoc.png
 

File đính kèm

  • 2.rar
    64.3 KB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem và kiểm tra tập tin đính kèm.

Lưu ý:
1. Về các mã có tiền tố tenvb_, sovb_ và ngayvb_
Tôi không biết đặc thù các văn bản trong File_Mau của bạn như thế nào nhưng tôi nghĩ là chỉ tenvb_ là luôn có trong mỗi văn bản. Có thể ai đó có File_Mau với cấu trúc hơi khác và rất có thể tất cả hoặc một số văn bản trong File_Mau không có sovb_ và/hoặc ngayvb_. Và tôi không biết bạn có thế nào nhưng ai đó có thể có 3 mã kia với thứ tự bất kỳ. Trong File_Mau có thể do đặc thù văn bản mà tenvb_ xuất hiện trước sovb_ nhưng ở văn bản khác thì ngược lại. Do tôi viết không chỉ cho mình bạn, vì viết cho 1 người hơi phí công, nên tôi giả thiết là 3 mã kia không bắt buộc có đồng thời trong mỗi văn bản, và chúng có thể ở thứ tự bất kỳ.
Nhưng với giả thiết như thế thì phát sinh vấn đề "không xác định". Chẳng hạn có:
[tenvb_TÊN BIÊN BẢN]
[sovb_số bb]
[ngayvb_ngày, tháng, năm]
[tenvb_BIÊN BẢN XỬ PHẠT]


Thì không biết được [sovb_số bb] và [ngayvb_ngày, tháng, năm] thuộc văn bản 1 hay thuộc văn bản 2.

Yêu cầu: Ở đầu mỗi văn bản phải có mã [vanban_***]. *** là số hoặc chuỗi bất kỳ nhưng phải thỏa điều kiện là mỗi mã như thế chỉ xuất hiện trong 1 văn bản. Tức trong văn bản 1 có thể là [VANBAN_12] (không phân biệt hoa thường), trong văn bản 2 lại là [VANBAN_hichic], nhưng [VANBAN_12] không thể xuất hiện trong văn bản 2 (không chỉ ở đầu mà còn ở chỗ bất kỳ), còn [VANBAN_hichic] không thể xuất hiện ở văn bản 1. Chúng phải duy nhất cho mỗi văn bản.

Tất nhiên [VanBan_***] chỉ xuất hiện ở File_MAU và trong sheet Data dòng ứng với mỗi mã đó là rỗng. Khi tạo tập tin Word có tên ở B2 thì những mã đó sẽ được thay bằng chuỗi rỗng - tức bị xóa đi.

Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau.

2. Mỗi mã trong phạm vi 1 văn bản có thể lặp lại nhiều lần, nhưng một mã không được phép xuất hiện ở >= 2 văn bản.

3. Toàn bộ code của tôi có trong Module2 và sheet "Trang Chu".

4. Khi TrangChu!B2 thay đổi thì code gọi Sub createWordAndSheet để tạo sheet trong tập tin "Danh Muc.xlsx", sau đó tạo tập tin Word.

5. Code tạo sheet với tên tiếng Việt nếu B2 là tiếng Việt. Nếu bạn muốn tên không dấu thì tự tìm hàm chuyển chuỗi có dấu thành không dấu. Bạn có thể tìm trên GPE - tôi không tìm hộ bạn. Hàm nhận 1 tham số là chuỗi có dấu hoặc không và trả về kết quả là chuỗi không dấu. Giả sử hàm đó tên là khongdau thì trong Sub createWordAndSheet bạn hãy thay (chỉ có 1)
Mã:
sheetname = filename
thành
Mã:
sheetname = khongdau(filename)

Các lưu ý bạn nên ghi vào sheet Trang Chu để khỏi quên.
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng! em cám ơn Thầy.
Em làm như sau:
Em đặt tên các từ khóa có lấy [Key] để xuất ra file Excel có tên "Danh Muc" lần lượt là:
Ở văn bản thứ nhất:
[vanban_TÊN BIÊN BẢN]
[vanban_sovb]
[vanban_ngaythangnam1]

Sang văn bản thứ 2:
[vanban_Xuphat]
[vanban_Sovbxp]
[vanban_ngaythangnam2]
Bạn không làm đúng như tôi viết.
3 mã kia vẫn là [tenvb_***], [sovb_***] và [ngayvb_***].
Yêu cầu: Ở đầu mỗi văn bản phải có mã [vanban_***]
...
Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau.

Cái [Vanban_***] là cái mã THÊM vào ở TRƯỚC tất cả các mã hiện có. Mục đích là để đánh dấu điểm đầu của mỗi văn bản. Vì có những văn bản có 2 trang, cái khác 1 trang, cái nữa có thể có 5 trang nên mới phải đánh dấu để code tìm dễ dàng. Cái [VANBAN_***] chỉ thêm 1 lần cho mỗi văn bản và thêm 1 lần ở ĐẦU văn bản.
Nhắc lại: [VANBAN_***] là mã THÊM vào ngoài các mã hiện hành. Tôi không viết là phải đổi tên [tenvb_***], [sovb_***] và [ngayvb_***]. thành [VANBAN_]
Vd.
[VANBAN_hichic]
[tenvb_TÊN BIÊN BẢN]
[sovb_HEHE]
[ngayvb_ngaythangnam1]

Sang văn bản thứ 2:
[vanban_123Blala]
[tenvb_Xuphat]
[sovb_Sovbxp]
[ngayvb_ngaythangnam2]
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn không làm đúng như tôi viết.
3 mã kia vẫn là [tenvb_***], [sovb_***] và [ngayvb_***].


Cái [Vanban_***] là cái mã THÊM vào ở TRƯỚC tất cả các mã hiện có. Mục đích là để đánh dấu điểm đầu của mỗi văn bản. Vì có những văn bản có 2 trang, cái khác 1 trang, cái nữa có thể có 5 trang nên mới phải đánh dấu để code tìm dễ dàng. Cái [VANBAN_***] chỉ thêm 1 lần cho mỗi văn bản và thêm 1 lần ở ĐẦU văn bản.
Nhắc lại: [VANBAN_***] là mã THÊM vào ngoài các mã hiện hành. Tôi không viết là phải đổi tên [tenvb_***], [sovb_***] và [ngayvb_***]. thành [VANBAN_]
Vd.
[VANBAN_hichic]
[tenvb_TÊN BIÊN BẢN]
[sovb_HEHE]
[ngayvb_ngaythangnam1]

Sang văn bản thứ 2:
[vanban_123Blala]
[tenvb_Xuphat]
[sovb_Sovbxp]
[ngayvb_ngaythangnam2]
Dạ! thầy có hướng dẫn : "Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau. "
Tức là trong File_Mau thì phải thêm [Vanban_***] vào tất cả các mã hay là chỉ các mã để xuất được : "Nội dung văn bản, số văn bản, ngày tháng ban hành" vậy thầy?
Giả sử có 02 biên bản, Nếu chỉ thêm mã vào các mã để xuất được : "Nội dung văn bản, số văn bản, ngày tháng ban hành" vị trí em thêm như vậy đúng không ạ?

12.png13.png
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ! thầy có hướng dẫn : "Tóm lại trước khi chạy code thì sửa tập tin File_Mau và thêm [Vanban_***] vào trước tất cả các mã trong mỗi văn bản có trong tập tin File_Mau. "
Tức là trong File_Mau thì phải thêm [Vanban_***] vào tất cả các mã hay là chỉ các mã để xuất được : "Nội dung văn bản, số văn bản, ngày tháng ban hành" vậy thầy?
Giả sử có 02 biên bản, Nếu chỉ thêm mã vào các mã để xuất được : "Nội dung văn bản, số văn bản, ngày tháng ban hành" vị trí em thêm như vậy đúng không ạ?
Tôi đã viết rõ
Cái [VANBAN_***] chỉ thêm 1 lần cho mỗi văn bản và thêm 1 lần ở ĐẦU văn bản.
Và tôi còn cho vd.
[VANBAN_hichic]
[tenvb_TÊN BIÊN BẢN]
[sovb_HEHE]
[ngayvb_ngaythangnam1]
Sang văn bản thứ 2:
[vanban_123Blala]
[tenvb_Xuphat]
[sovb_Sovbxp]
[ngayvb_ngaythangnam2]

Bạn thấy [VANBAN_hichic] và [vanban_123Blala] xuất hiện mấy lần trong mỗi văn bản?

Và bạn nhìn vào các mã của bạn thì [vanban_1] xuất hiện mấy lần trong văn bản 1, và [vanban_2] xuất hiện mấy lần trong văn bản 2?

Ngoài ra bạn có
[Ten_hientruong]
[so_vbht]
[thoigian_vbht]
[Ten_Xuphat]
[So_vbxp]
[thoigian_xp]
Tôi đã nói rồi. 3 mã "kia" phải có tiền tố lần lượt là "tenvb_", "sovb_" và "ngayvb_".
Bạn nhìn lại ảnh đính kèm có thấy 3 tiền tố kia không?

Nhìn lên đoạn tôi hướng dẫn ở trên là biết phải thế nào.

Tóm lại hãy viết y như trước kia ở bài #35 rồi sau đó THÊM vào đầu mỗi văn bản một mã duy nhất [VANBAN_***]. Thế thôi.

Tôi hướng dẫn lần cuối.

Mã:
[vanban_1][tenvb_hientruong]
[sovb_vbht]
[ngayvb_vbht]
...
[vanban_2][tenvb_Xuphat]
[Sovb_vbxp]
[ngayvb_xp]

Dâng tới tận nơi mà không biết xơi. Bó tay.
 
Upvote 0
Tôi đã viết rõ

Và tôi còn cho vd.


Bạn thấy [VANBAN_hichic] và [vanban_123Blala] xuất hiện mấy lần trong mỗi văn bản?

Và bạn nhìn vào các mã của bạn thì [vanban_1] xuất hiện mấy lần trong văn bản 1, và [vanban_2] xuất hiện mấy lần trong văn bản 2?

Ngoài ra bạn có

Tôi đã nói rồi. 3 mã "kia" phải có tiền tố lần lượt là "tenvb_", "sovb_" và "ngayvb_".
Bạn nhìn lại ảnh đính kèm có thấy 3 tiền tố kia không?

Nhìn lên đoạn tôi hướng dẫn ở trên là biết phải thế nào.

Tóm lại hãy viết y như trước kia ở bài #35 rồi sau đó THÊM vào đầu mỗi văn bản một mã duy nhất [VANBAN_***]. Thế thôi.

Tôi hướng dẫn lần cuối.

Mã:
[vanban_1][tenvb_hientruong]
[sovb_vbht]
[ngayvb_vbht]
...
[vanban_2][tenvb_Xuphat]
[Sovb_vbxp]
[ngayvb_xp]

Dâng tới tận nơi mà không biết xơi. Bó tay.
Dạ! em làm được rồi, rất cám ơn thầy đã hướng dẫn chi tiết.
Chúc thầy sức khỏe và nhiều may mắn!
 
Upvote 0
Tôi đã viết rõ

Và tôi còn cho vd.


Bạn thấy [VANBAN_hichic] và [vanban_123Blala] xuất hiện mấy lần trong mỗi văn bản?

Và bạn nhìn vào các mã của bạn thì [vanban_1] xuất hiện mấy lần trong văn bản 1, và [vanban_2] xuất hiện mấy lần trong văn bản 2?

Ngoài ra bạn có

Tôi đã nói rồi. 3 mã "kia" phải có tiền tố lần lượt là "tenvb_", "sovb_" và "ngayvb_".
Bạn nhìn lại ảnh đính kèm có thấy 3 tiền tố kia không?

Nhìn lên đoạn tôi hướng dẫn ở trên là biết phải thế nào.

Tóm lại hãy viết y như trước kia ở bài #35 rồi sau đó THÊM vào đầu mỗi văn bản một mã duy nhất [VANBAN_***]. Thế thôi.

Tôi hướng dẫn lần cuối.

Mã:
[vanban_1][tenvb_hientruong]
[sovb_vbht]
[ngayvb_vbht]
...
[vanban_2][tenvb_Xuphat]
[Sovb_vbxp]
[ngayvb_xp]

Dâng tới tận nơi mà không biết xơi. Bó tay.
[/QUOTE} Trường hợp [key word] dữ liệu trong excel dài hơn 255 ký tự thì vẫn bị lỗi. A Batman xem dùm khác phục
 
Upvote 0
Tôi đã viết rõ

Và tôi còn cho vd.


Bạn thấy [VANBAN_hichic] và [vanban_123Blala] xuất hiện mấy lần trong mỗi văn bản?

Và bạn nhìn vào các mã của bạn thì [vanban_1] xuất hiện mấy lần trong văn bản 1, và [vanban_2] xuất hiện mấy lần trong văn bản 2?

Ngoài ra bạn có

Tôi đã nói rồi. 3 mã "kia" phải có tiền tố lần lượt là "tenvb_", "sovb_" và "ngayvb_".
Bạn nhìn lại ảnh đính kèm có thấy 3 tiền tố kia không?

Nhìn lên đoạn tôi hướng dẫn ở trên là biết phải thế nào.

Tóm lại hãy viết y như trước kia ở bài #35 rồi sau đó THÊM vào đầu mỗi văn bản một mã duy nhất [VANBAN_***]. Thế thôi.

Tôi hướng dẫn lần cuối.

Mã:
[vanban_1][tenvb_hientruong]
[sovb_vbht]
[ngayvb_vbht]
...
[vanban_2][tenvb_Xuphat]
[Sovb_vbxp]
[ngayvb_xp]

Dâng tới tận nơi mà không biết xơi. Bó tay.
Trường hợp [key word] dữ liệu trong excel dài hơn 255 ký tự thì vẫn bị lỗi. A Batman xem dùm khác phục
 
Upvote 0
Web KT
Back
Top Bottom