word或WPS文档怎么将选择题按首字母排序,并保留正确选项

2024-11-07 13:53:59
推荐回答(3个)
回答(1):

1ctrl+h 调出 替换对话框,查找内容输入:^13([!0-9]),替换为输入:^t\1,高级或更多选择“使用通配符”,点击  【全部替换】 按钮。

2、ctrl+f 调出 查找对话框,查找内容→[0-9]{1,}、 →高级或更多→ 勾选“使用通配符”→替换为→(留空,就是什么都不填)→点击【全部替换】按钮。

3、开始菜单→排序→【找到你要的排序方式】→确定。

4、开始菜单→编号→【找到你想要的编号】→确定。

5、还原答案选择项,ctrl+f 调出 查找对话框,查找内容→ ([ABCD]、)→高级或更多→ 勾选“使用通配符”→替换为→^13\1→点击【全部替换按钮。

6、最后完成图如下:


注意事项:

作为 Office 套件的核心程序, Word 提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。哪怕只使用 Word 应用一点文本格式化操作或图片处理,也可以使简单的文档变得比只使用纯文本更具吸引力。

回答(2):

打开你的文档,按 Alt + F11 进入 VBE,在左侧的工程资源管理器中新建一个模块,将下列代码复制进去,按 F5 运行即可。

Sub test()
    Dim i, a, b, j, result As Integer
    Dim str As String
    Dim issure As Boolean
    i = 1
    With ActiveDocument
        Do While i < .Paragraphs.Count
            issure = False
            str = .Paragraphs(i).Range.Text
            j = 1
            Do While j < Len(str)
                If Mid(str, j, 1) = " " Then
                    str = Left(str, j - 1) & Right(str, Len(str) - j)
                Else
                    j = j + 1
                End If
            Loop
            b = 1
            a = 0
            Do While a < Len(str)
                a = InStr(b, str, "A")
                If a = 0 Then Exit Do
                If ((Mid(str, a - 1, 1) = "(") Or (Mid(str, a - 1, 1) = "(")) And ((Mid(str, a + 1, 1) = ")") Or (Mid(str, a + 1, 1) = ")")) Then
                    result = 1
                    issure = True
                Else
                    b = a + 1
                End If
                If issure Then Exit Do
            Loop
            If Not (issure) Then
                a = 0
                b = 1
                Do While a < Len(str)
                    a = InStr(b, str, "B")
                    If a = 0 Then Exit Do
                    If ((Mid(str, a - 1, 1) = "(") Or (Mid(str, a - 1, 1) = "(")) And ((Mid(str, a + 1, 1) = ")") Or (Mid(str, a + 1, 1) = ")")) Then
                        result = 2
                        issure = True
                    Else
                        b = a + 1
                    End If
                    If issure Then Exit Do
                Loop
            End If
            If Not (issure) Then
                a = 0
                b = 1
                Do While a < Len(str)
                    a = InStr(b, str, "C")
                    If a = 0 Then Exit Do
                    If ((Mid(str, a - 1, 1) = "(") Or (Mid(str, a - 1, 1) = "(")) And ((Mid(str, a + 1, 1) = ")") Or (Mid(str, a + 1, 1) = ")")) Then
                        result = 3
                        issure = True
                    Else
                        b = a + 1
                    End If
                    If issure Then Exit Do
                Loop
            End If
            If Not (issure) Then
                a = 0
                b = 1
                Do While a < Len(str)
                    a = InStr(b, str, "D")
                    If a = 0 Then Exit Do
                    If ((Mid(str, a - 1, 1) = "(") Or (Mid(str, a - 1, 1) = "(")) And ((Mid(str, a + 1, 1) = ")") Or (Mid(str, a + 1, 1) = ")")) Then
                        result = 4
                        issure = True
                    Else
                        b = a + 1
                    End If
                    If issure Then Exit Do
                Loop
            End If
            If issure Then
                Select Case result
                Case 1
                    .Paragraphs(i + 2).Range.Delete
                    .Paragraphs(i + 2).Range.Delete
                    .Paragraphs(i + 2).Range.Delete
                Case 2
                    .Paragraphs(i + 1).Range.Delete
                    .Paragraphs(i + 2).Range.Delete
                    .Paragraphs(i + 2).Range.Delete
                Case 3
                    .Paragraphs(i + 1).Range.Delete
                    .Paragraphs(i + 1).Range.Delete
                    .Paragraphs(i + 2).Range.Delete
                Case 4
                    .Paragraphs(i + 1).Range.Delete
                    .Paragraphs(i + 1).Range.Delete
                    .Paragraphs(i + 1).Range.Delete
                End Select
                .Paragraphs(i).Range.Select
                Selection.MoveRight 1
                Selection.MoveLeft 1
                Selection.Delete
            End If
            i = i + 1
        Loop
    End With
End Sub

回答(3):

用段落排序功能,排序前,用查找替换功能对数据进行处理:
第1次,删除题干编号:
查找:[0-9]{1,}、
勾选使用通配符
替换为:空
全部替换;
第2次,合并段落:
查找:^13([A、,B、,C、,D、])
勾选使用通配符
替换为:^11\1
全部替换;
最后,按CTRL+A,全选文档,进行排序:开始--段落--排序。