Chuyển đáp án từ file word sang bảng đáp án excel

Liên hệ QC

daocuongnbk

Thành viên chính thức
Tham gia
27/12/09
Bài viết
79
Được thích
6
Mình có file word bảng đáp án và file excel bảng đáp án theo mẫu. Nhờ giúp đỡ tạo buttun chuyển bảng đáp án từ word sang ecxel theo mẫu dùm. Cám ơn
 

File đính kèm

  • DapanchamQM.xlsx
    11.9 KB · Đọc: 27
  • Dap an.docx
    7.8 KB · Đọc: 41
Mở tập tin DapanchamQM.xlsx -> nhấn tổ hợp Alt + F11 để vào VBE -> menu Insert -> Module -> dán code sau vào Module1 -> lưu lại tập tin với định dạng XLSM -> đặt 1 Button xuống sheet -> chọn macro DapAn

Sau khi nhấn Button thì chọn tập tin Word để lấy dữ liệu.
Mã:
Option Explicit

Sub DapAn()
Const wdGoToLine = 3
Const wdParagraph = 4
Dim k As Long, c As Long, fname, text As String, result(), WordApp As Object, doc As Object, sel As Object, tabl As Object
'    xoa du lieu cu
    ThisWorkbook.Worksheets("Sheet3").Range("A2:K1000").ClearContents
'    mo chon tap tin Word
    fname = Application.GetOpenFilename("Word Files (*.doc;*.docx),*.doc;*.docx")
    If fname = False Then Exit Sub  ' khong chon thi ket thuc
'    mo server Word
    Set WordApp = CreateObject("Word.Application")
    Set doc = WordApp.documents.Open(fname) ' mo tap tin vua chon
    ReDim result(1 To doc.Tables.Count, 1 To 11)
'    duyet tung bang trong tap tin Word
    For k = 1 To doc.Tables.Count
        Set tabl = doc.Tables(k)
        tabl.Range.GoToPrevious(wdGoToLine).Select
        WordApp.Selection.Expand wdParagraph
        text = WordApp.Selection.text
        result(k, 1) = Trim(Mid(text, 1, Len(text) - 1))
        For c = 1 To 10
            text = tabl.cell(2, c).Range.text   ' Ma de
            result(k, c + 1) = Application.Clean(Trim(Mid(text, 1, Len(text) - 1))) ' cac dap an
        Next c
    Next k
'    nhap ket qua vao sheet
    ThisWorkbook.Worksheets("Sheet3").Range("A2").Resize(UBound(result, 1), UBound(result, 2)).Value = result
    WordApp.Quit
    Set doc = Nothing
    Set WordApp = Nothing
End Sub
 

File đính kèm

  • DapanchamQM.xlsm
    22.3 KB · Đọc: 30
Upvote 0
Mở tập tin DapanchamQM.xlsx -> nhấn tổ hợp Alt + F11 để vào VBE -> menu Insert -> Module -> dán code sau vào Module1 -> lưu lại tập tin với định dạng XLSM -> đặt 1 Button xuống sheet -> chọn macro DapAn

Sau khi nhấn Button thì chọn tập tin Word để lấy dữ liệu.
Mã:
Option Explicit

Sub DapAn()
Const wdGoToLine = 3
Const wdParagraph = 4
Dim k As Long, c As Long, fname, text As String, result(), WordApp As Object, doc As Object, sel As Object, tabl As Object
'    xoa du lieu cu
    ThisWorkbook.Worksheets("Sheet3").Range("A2:K1000").ClearContents
'    mo chon tap tin Word
    fname = Application.GetOpenFilename("Word Files (*.doc;*.docx),*.doc;*.docx")
    If fname = False Then Exit Sub  ' khong chon thi ket thuc
'    mo server Word
    Set WordApp = CreateObject("Word.Application")
    Set doc = WordApp.documents.Open(fname) ' mo tap tin vua chon
    ReDim result(1 To doc.Tables.Count, 1 To 11)
'    duyet tung bang trong tap tin Word
    For k = 1 To doc.Tables.Count
        Set tabl = doc.Tables(k)
        tabl.Range.GoToPrevious(wdGoToLine).Select
        WordApp.Selection.Expand wdParagraph
        text = WordApp.Selection.text
        result(k, 1) = Trim(Mid(text, 1, Len(text) - 1))
        For c = 1 To 10
            text = tabl.cell(2, c).Range.text   ' Ma de
            result(k, c + 1) = Application.Clean(Trim(Mid(text, 1, Len(text) - 1))) ' cac dap an
        Next c
    Next k
'    nhap ket qua vao sheet
    ThisWorkbook.Worksheets("Sheet3").Range("A2").Resize(UBound(result, 1), UBound(result, 2)).Value = result
    WordApp.Quit
    Set doc = Nothing
    Set WordApp = Nothing
End Sub
Cám ơn Bạn rất nhiều, đúng theo yêu cầu rồi nhưng làm sao để cột mã đề chỉ là số trong dấu [ ]
 
Upvote 0
Cám ơn Bạn rất nhiều, đúng theo yêu cầu rồi nhưng làm sao để cột mã đề chỉ là số trong dấu [ ]
1. Thêm ở đầu
Mã:
Dim pos1 As Long, pos2 As Long

2.
Thay
Mã:
result(k, 1) = Trim(Mid(text, 1, Len(text) - 1))
bằng
Mã:
pos1 = InStr(1, text, "[")
If pos1 Then
    pos2 = InStr(pos1, text, "]")
    If pos2 = 0 Then pos2 = Len(text) - 1
    text = Mid(text, pos1 + 1, pos2 - pos1 - 1)
End If
result(k, 1) = CLng(text)
 
Upvote 0
1. Thêm ở đầu
Mã:
Dim pos1 As Long, pos2 As Long

2.
Thay
Mã:
result(k, 1) = Trim(Mid(text, 1, Len(text) - 1))
bằng
Mã:
pos1 = InStr(1, text, "[")
If pos1 Then
    pos2 = InStr(pos1, text, "]")
    If pos2 = 0 Then pos2 = Len(text) - 1
    text = Mid(text, pos1 + 1, pos2 - pos1 - 1)
End If
result(k, 1) = CLng(text)
Rất cám ơn Bạn đã giúp đỡ. Mình nhờ bạn lần này nữa thôi: Dòng câu có thể thay đổi tùy theo số câu trong đề trắc nghiệm (chứ không cố định 10 câu). Phiền Bạn giúp đỡ thêm ạ
 
Upvote 0
Sửa
Mã:
ReDim result(1 To doc.Tables.Count, 1 To 10)
thành
Mã:
ReDim result(1 To doc.Tables.Count, 1 To 1)

Sau
Mã:
Set tabl = doc.Tables(k)

thì thêm 1 dòng
Mã:
If UBound(result, 2) < tabl.Columns.Count + 1 Then ReDim Preserve result(1 To UBound(result, 1), 1 To tabl.Columns.Count + 1)

Sửa
Mã:
For c = 1 To 10
thành
Mã:
For c = 1 To tabl.Columns.Count
 
Upvote 0
Sửa
Mã:
ReDim result(1 To doc.Tables.Count, 1 To 10)
thành
Mã:
ReDim result(1 To doc.Tables.Count, 1 To 1)

Sau
Mã:
Set tabl = doc.Tables(k)

thì thêm 1 dòng
Mã:
If UBound(result, 2) < tabl.Columns.Count + 1 Then ReDim Preserve result(1 To UBound(result, 1), 1 To tabl.Columns.Count + 1)

Sửa
Mã:
For c = 1 To 10
thành
Mã:
For c = 1 To tabl.Columns.Count
Cám ơn Bạn rất nhiều
 
Upvote 0
Cám ơn Bạn rất nhiều
Chào bạn batman1 , mình đang sử dụng pm trắc nghiệm Mcmix Pro nhưng gặp khó khăn khi nhập ID cho mỗi câu hỏi trắc nghiệm vào ngân hàng của pm này (nếu nhập thủ công như phần mềm hướng dẫn thì rất lâu). Nhờ Bạn giúp đỡ mình một phen nhé.
 

File đính kèm

  • GanID_Mcmix.rar
    17.6 KB · Đọc: 6
Upvote 0
Chào bạn batman1 , mình đang sử dụng pm trắc nghiệm Mcmix Pro nhưng gặp khó khăn khi nhập ID cho mỗi câu hỏi trắc nghiệm vào ngân hàng của pm này (nếu nhập thủ công như phần mềm hướng dẫn thì rất lâu). Nhờ Bạn giúp đỡ mình một phen nhé.
Nếu bạn không mô tả từ đầu đến cuối thì tôi làm sao biết ý để giúp?
Cái bạn có ban đầu là gì, và tiếp theo bạn phải làm những gì? Mô tả lần lượt tất cả các thao tác từ thao tác 1 đến thao tác n cần phải thực hiện nếu làm bằng tay. Code sẽ làm các thao tác đó thay cho đôi tay. Thế thôi.

À, mà bạn nói đến Mcmix Pro. Người giúp bạn có phải biết phần mềm này mới có thể giúp bạn không? Nếu phải biết thì hơi khó rồi. Người khác có thể không muốn bỏ công để tìm, tải về cái phần mềm kia.
 
Upvote 0
Nếu bạn không mô tả từ đầu đến cuối thì tôi làm sao biết ý để giúp?
Cái bạn có ban đầu là gì, và tiếp theo bạn phải làm những gì? Mô tả lần lượt tất cả các thao tác từ thao tác 1 đến thao tác n cần phải thực hiện nếu làm bằng tay. Code sẽ làm các thao tác đó thay cho đôi tay. Thế thôi.

À, mà bạn nói đến Mcmix Pro. Người giúp bạn có phải biết phần mềm này mới có thể giúp bạn không? Nếu phải biết thì hơi khó rồi. Người khác có thể không muốn bỏ công để tìm, tải về cái phần mềm kia.
Không cần phải tìm hoặc tải đâu Bạn, chỉ xử lý vba trên word thôi. Mình gởi file yêu cầu, nhờ bạn giúp đỡ mình nha
 

File đính kèm

  • Nho giup do.rar
    56.8 KB · Đọc: 7
Upvote 0
Không cần phải tìm hoặc tải đâu Bạn, chỉ xử lý vba trên word thôi. Mình gởi file yêu cầu, nhờ bạn giúp đỡ mình nha
Bạn tưởng bạn đính kèm 2 tập tin Word là xong à? Tôi có hiểu việc mà bạn đang muốn làm đâu. Tôi không muốn đoán mò.

Giả sử bạn có 2 tập tin Word kia. Giả sử bây giờ tôi phải làm cái việc của bạn bằng TAY. Bạn hãy giải thích và liệt kê tất cả 100 thao tác mà tôi phải làm bằng TAY để đi tới kết quả mong muốn. Lấy gì, ở đâu, so sánh với cái gì hoặc kiểm tra cái gì trong cái vừa lấy, tiếp đó thì đem gộp với cái gì, theo tiêu chí nào, ở nhiệt độ nào, gió cấp mấy, và ghi vào đâu, bằng bút mầu gì, nét đậm hay nhạt ... Vân vân và mây mây.

Nêu nói về lười thì tôi còn lười hơn bạn, tôi là vua lười đây. Nhưng tôi không muốn nói về lười biếng. Đơn giản là nếu không mô tả thì tôi không hiểu bạn muốn làm gì.
 
Upvote 0
Bạn tưởng bạn đính kèm 2 tập tin Word là xong à? Tôi có hiểu việc mà bạn đang muốn làm đâu. Tôi không muốn đoán mò.

Giả sử bạn có 2 tập tin Word kia. Giả sử bây giờ tôi phải làm cái việc của bạn bằng TAY. Bạn hãy giải thích và liệt kê tất cả 100 thao tác mà tôi phải làm bằng TAY để đi tới kết quả mong muốn. Lấy gì, ở đâu, so sánh với cái gì hoặc kiểm tra cái gì trong cái vừa lấy, tiếp đó thì đem gộp với cái gì, theo tiêu chí nào, ở nhiệt độ nào, gió cấp mấy, và ghi vào đâu, bằng bút mầu gì, nét đậm hay nhạt ... Vân vân và mây mây.

Nêu nói về lười thì tôi còn lười hơn bạn, tôi là vua lười đây. Nhưng tôi không muốn nói về lười biếng. Đơn giản là nếu không mô tả thì tôi không hiểu bạn muốn làm gì.
Trước hết mình cám ơn bạn từ sự giúp đỡ lần trước. Mình là giáo viên đang sử dụng pm trắc nghiệm ngân hàng để trộn đề dạy cho HS nên rất cần bạn giúp đỡ. Thật tình mình không biết nhiều về lập trình nên chỉ biết nhờ bạn nhưng không biết điều này đã làm phiền bạn rất nhiều. Bạn nghĩ thử xem, nếu mình giỏi lập trình thì có cần nhờ đến bạn không. Nếu bạn yêu cầu mình phải trả phí thì không thành vấn đề. Sau những lời này, bạn không cần phải trả lời, mình sẽ không vào diễn đàn excel nữa đâu. Trân trọng
 
Upvote 0
Trước hết mình cám ơn bạn từ sự giúp đỡ lần trước. Mình là giáo viên đang sử dụng pm trắc nghiệm ngân hàng để trộn đề dạy cho HS nên rất cần bạn giúp đỡ. Thật tình mình không biết nhiều về lập trình nên chỉ biết nhờ bạn nhưng không biết điều này đã làm phiền bạn rất nhiều. Bạn nghĩ thử xem, nếu mình giỏi lập trình thì có cần nhờ đến bạn không. Nếu bạn yêu cầu mình phải trả phí thì không thành vấn đề. Sau những lời này, bạn không cần phải trả lời, mình sẽ không vào diễn đàn excel nữa đâu. Trân trọng
Giờ GV cũng lạ, đã đi nhờ lại cao gạo
Ra đề (nhờ) là GV mà mọi người không hiểu, giải thích mà người khác không hiểu thì đó là lỗi của người giải thích - vậy thì giảng bài sao đây?
 
Upvote 0
Mình có file word bảng đáp án và file excel bảng đáp án theo mẫu. Nhờ giúp đỡ tạo buttun chuyển bảng đáp án từ word sang ecxel theo mẫu dùm. Cám ơn
Xin chào batman1 và mọi người !
Mình cũng có câu hỏi như bạn daocuongnbk, nhưng đáp án words của mình lại ở dạng khác, mong bạn giúp đỡ. Cám ơn bạn và mọi người.
 

File đính kèm

  • Phieu soi dap an Môn Toán.docx
    39 KB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Xin chào batman1 và mọi người !
Mình cũng có câu hỏi như bạn daocuongnbk, nhưng đáp án words của mình lại ở dạng khác, mong bạn giúp đỡ. Cám ơn bạn và mọi người.
Mở chủ đề mới đi bạn! Nếu vẫn muốn dính cái dớp chủ thớt dỗi hờn thì ở lại đây.
 
Upvote 0
Web KT
Back
Top Bottom