ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4544|回复: 7

[求助]WORD中查找固定格式的文字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-5-17 22:00 | 显示全部楼层 |阅读模式

最近在做问卷调查,有位同事没有打印直接把调查问卷以电子稿(WORD)的格式发到学生的电脑上,要求学生把自己认为正确的答案字体颜色设为红色。共有500多份问卷啊,现在要把每份问卷的每个答案统计出来,累死人啊。我的思路是能不能编写一个简单的VBA或者一个小程序对这些文档批量处理,自动统计出没份问卷中红色显示的字符(答案)然后自动存到一个指定的文件中去(每份问卷的答案一行),这样可以省点力气。

因为本人是个菜鸟,对这个一窍不通,只有恳请高手出手相救了。最好提供源码,万分感激啊。

上传问卷样本

uhQNiZs8.rar (9.14 KB, 下载次数: 30)
[此贴子已经被作者于2007-5-17 22:24:17编辑过]

TA的精华主题

TA的得分主题

发表于 2007-5-17 22:32 | 显示全部楼层

是单选还是多选呀?学生有没有不选的题目或颜色设错的可能?原题干有没有序号?自动还是手动的?.......... 

做问卷调查应该是inforpath的干活(very cool!),当初那个同事是怎么想的?“胆子”怎么这么大?设计一个方案不能光想头不考虑尾呀,收上这些Word文档怎么处理?还不如纸质的了,这种计算机应用方式真是帮了倒忙。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-17 22:48 | 显示全部楼层

是啊,真是郁闷啊,我们就按照理想的的状态来想:在表格中,第一列是题目,第二列是答案,所有的答案都做了,所做的答案都是红色的,该怎么操作。万分感谢,在线等

TA的精华主题

TA的得分主题

发表于 2007-5-17 22:52 | 显示全部楼层

这个调查是不记名的么?如果比较理想的话,

可以这样做

插入→文件,全选500个那些文档变成一个文档,这个文档页数是单个文档页数*500,因内容全是文字没有图表之类的,Word应该不会死掉的;

删除所有红色答案以外的内容,但要保留序号,让它们能对应起来。

然后它们全选或分几部分来选,然后转换成表格,复制到Excel中去

然后在Excel中得到一个纵列,将它们处理成原单Word文档题数为一列的表,最后处理统计分析一水平行的选择情况。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-17 23:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
兄弟,你不是说手工删除红色以外的所有内容吧??能不能有自动执行的代码?我是菜鸟,对编程一窍不通

TA的精华主题

TA的得分主题

发表于 2007-5-17 23:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
inforpath是什么,还没用过,先查了了解一下,回家一趟不容易,找个由头说说话,嘿嘿

TA的精华主题

TA的得分主题

发表于 2007-5-18 13:08 | 显示全部楼层

看看如下代码是否可行
Sub test()
'请将所有问卷文档保存于指定的文件夹(暂定为E:\ddd)
    Dim ndoc As String, odoc As Document
    Dim mytext As String, mycount As String, i As Integer, n As Integer
    ChDrive "E" '设置当前驱动器
    ChDir "E:\ddd" '确定目录路径
    ndoc = Dir("*.doc")
    Application.ScreenUpdating = False
    Do While ndoc <> ""  '在指定目录内各文档循环操作
        n = n + 1
        Set odoc = Documents.Open(ndoc)
        With odoc.Content.Find '查找红色数字
            .ClearFormatting
            .Font.Color = wdColorRed
            .Format = True
            .MatchWildcards = True
            '如果找到,则记录其题号及数字选项
            Do While .Execute(findtext:="[1-3]", Forward:=True) = True
                With .Parent
                    mytext = mytext & Replace(odoc.Name, "doc", "") _
                        & ":no" & .Cells(1).RowIndex - 1 & vbTab & .Text & vbCr
                    .Move Unit:=wdRow, Count:=1
                End With
            Loop
        End With
        odoc.Close False
        ndoc = Dir()
    Loop
    '分问题统计答卷情况
    For i = 1 To 32
        mycount = mycount & "No." & i & vbTab & UBound(Split(mytext, "no" & i & vbTab & "1")) & vbTab _
        & UBound(Split(mytext, "no" & i & vbTab & "2")) & vbTab _
        & UBound(Split(mytext, "no" & i & vbTab & "3")) & vbCr
    Next i
    '创建新文档并插入统计表格
    Documents.Add
    Selection.InsertAfter "题号" & vbTab & "是" & vbTab & "否" & vbTab & "不确定" & vbCr & mycount
    Selection.ConvertToTable Separator:=vbTab, numcolumns:=4
    With ActiveDocument.Tables(1)
        .Style = "网格型"
        .Borders.Enable = True
        .PreferredWidthType = wdPreferredWidthPercent
        .PreferredWidth = 75
        .Rows.Alignment = wdAlignRowCenter
    End With
    Application.ScreenUpdating = True
    MsgBox "共统计了" & n & "个文档。", vbInformation
End Sub

[此贴子已经被作者于2007-5-18 13:15:47编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-19 21:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
万分感谢,非常好用.祝愿你好人有好报
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 22:29 , Processed in 0.039897 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表