注册 登录
编程论坛 VFP论坛

如何将Excel题库导出为word文档

王咸美 发布于 2024-05-05 13:21, 278 次点击
如何将Excel文档题库转为word文档?请高手赐教!万分感谢!!!
Excel题库见附件1

最终word文档见附件2

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2024-5-5 13:24编辑过]

5 回复
#2
王咸美2024-05-05 13:25
压缩文件为Excel题库
#3
王咸美2024-05-05 13:35
VBA代码如何改写为VFP代码?请高手赐教!


Sub 导出题库()
    Set doc = CreateObject("word.application") '创建Word对象
    Set wd = doc.Documents.Add
    With ThisWorkbook.Worksheets(2)
        rrow = .Range("a65536").End(3).Row
        For i = 2 To rrow
            arr = Split(.Cells(i, 3), "|")
            If UBound(arr) > 1 Then
                strr = .Cells(i, 1) & "、" & .Cells(i, 2).Value & vbCrLf & _
                "A." & arr(1) & "B." & arr(2) & "C." & arr(3) & "D." & arr(4) & vbCrLf & "标准答案:" & .Cells(i, 4)
                With doc.Selection
                    .TypeText strr
                    .TypeParagraph
                End With
            Else
            End If
        Next
        wd.SaveAs ThisWorkbook.Path & "\例子.docx"
End with
End sub
#4
王咸美2024-05-05 17:20
只有本站会员才能查看附件,请 登录
#5
yiyanxiyin2024-05-06 10:33
这里只解释一下这个代码的意义: .Range("a65536").End(3).Row
这个代码的整体的意思是:a列有数据的最后一行的行号
Range("a65536")表示a列65536行的单元格
End(3)表示基于前面的单元格往上查找出有数据的单元格(找到一个即停止), 3即xlUp, 除了xlUp,还有xlToLeft, xlToRight等参数
Row表示单元格的行号

再说一下65536是xls每个sheet能存数据的最大行数, 如果是xlsx那最大行数比这个大很多, 所以为了兼容性, 这个代码应该改成:
.Cells(.Rows.Count, 1).End(xlUp).Row
#6
星光悠蓝2024-05-06 11:04
1