Mong nhờ các cao thủ giúp cách viết giúp code khó này với (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngoclam1088

Thành viên mới
Tham gia
24/3/08
Bài viết
19
Được thích
2
Tình hình chắc mọi người đã nghe vụ môn Toán năm nay thi đại học các cháu phải thi trắc nghiệm. Lâu nay em dùng phần mềm cũ định dạng kiểu khác. Giờ em định chuyển sang phần mềm mới phải điều chỉnh định dạng mới (như ảnh và file mẫu đính kèm). Em mã đổi thủ công thì chết mất. Kính mong anh em võ lâm code giúp em món này với.
Em xin biết ơn anh em nhiều lắm.
View attachment 165440
 

File đính kèm

Thực tế cùng 2 đề thi khác nhau thì các câu sẽ thay đổi vị trí.

Đặc biệt đáp án đúng cũng thay đổi tùy theo đề. Vì vậy nên để đáp án A luôn là đúng. Khi đó người làm đề dễ kiểm tra đáp án A có đúng không. Khi chạy chương trình thì đáp án A sẽ thay đổi vị trí

Như vậy bạn không cần đánh dấu * vào đáp án đúng nữa.

Chỉ gốp ý thôi. Vi bớt đi những "dấu hiệu" của đáp án thì cũng đỡ viết code.
 
Lần chỉnh sửa cuối:
Upvote 0
Tình hình chắc mọi người đã nghe vụ môn Toán năm nay thi đại học các cháu phải thi trắc nghiệm. Lâu nay em dùng phần mềm cũ định dạng kiểu khác. Giờ em định chuyển sang phần mềm mới phải điều chỉnh định dạng mới (như ảnh và file mẫu đính kèm). Em mã đổi thủ công thì chết mất. Kính mong anh em võ lâm code giúp em món này với.
Em xin biết ơn anh em nhiều lắm.
View attachment 165440
bạn kiểm tra lại code
Mã:
Sub GPE2()
Dim i As Long, last As Long, tmp As String, b As String
Application.ScreenUpdating = False
Selection.WholeStory
last = Selection.Sentences.Count
On Error Resume Next
For i = 1 To last
    ActiveDocument.Sentences(i).Select
    tmp = Selection
    If Left(tmp, 6) = "[<br>]" Then
       Selection.TypeText Text:="#(m)"
       GoTo tiep
    End If
    If Left(tmp, 1) = vbTab Then
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.Delete
        If Len(tmp) > 2 Then Selection.TypeParagraph
        b = Right(tmp, 3)
    ActiveDocument.Sentences(i).Select
    Else
        b = Left(tmp, 3)
    End If
    If b = "A. " Or b = "B. " Or b = "A. " Or b = "C. " Or b = "D. " Or b = "E. " Then
        If Selection.Font.Underline = 9999999 Or Selection.Font.Underline = 1 Then
            Selection.Font.Underline = wdUnderlineNone
            Selection.MoveEnd Unit:=wdCharacter, Count:=-3
            Selection.TypeText Text:="*"
        End If
    End If
tiep:
Next
Selection.HomeKey Unit:=wdStory
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tuyệt vời. Xin chân thành cảm ơn cao nhân nhiều lắm. Chúc bạn và gia đình nhiều sức khỏe và hạnh phúc nhé
bạn kiểm tra lại code
Mã:
Sub GPE2()
Dim i As Long, last As Long, tmp As String, b As String
Application.ScreenUpdating = False
Selection.WholeStory
last = Selection.Sentences.Count
On Error Resume Next
For i = 1 To last
    ActiveDocument.Sentences(i).Select
    tmp = Selection
    If Left(tmp, 6) = "[<br>]" Then
       Selection.TypeText Text:="#(m)"
       GoTo tiep
    End If
    If Left(tmp, 1) = vbTab Then
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        Selection.Delete
        If Len(tmp) > 2 Then Selection.TypeParagraph
        b = Right(tmp, 3)
    ActiveDocument.Sentences(i).Select
    Else
        b = Left(tmp, 3)
    End If
    If b = "A. " Or b = "B. " Or b = "A. " Or b = "C. " Or b = "D. " Or b = "E. " Then
        If Selection.Font.Underline = 9999999 Or Selection.Font.Underline = 1 Then
            Selection.Font.Underline = wdUnderlineNone
            Selection.MoveEnd Unit:=wdCharacter, Count:=-3
            Selection.TypeText Text:="*"
        End If
    End If
tiep:
Next
Selection.HomeKey Unit:=wdStory
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom