ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 历遍WORD表格,根据文字内容扣分

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-8 16:40 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
5.16 巡查.rar (211.61 KB, 下载次数: 23)
历遍WORD表格,根据文字内容扣分
谢谢

TA的精华主题

TA的得分主题

发表于 2018-6-8 16:42 | 显示全部楼层
很牛B的求助

TA的精华主题

TA的得分主题

发表于 2018-6-8 18:41 | 显示全部楼层
本帖最后由 182197315 于 2018-6-8 18:43 编辑

Sub aa()
Dim i%, sr1$, sr2$, x As Single
With ActiveDocument.Tables(1)
    For i = 2 To .Rows.Count - 1
        sr1 = .Cell(i, 2).Range.Text
        sr2 = .Cell(i, 4).Range.Text
        If sr1 Like "*保洁不到位" Or sr1 Like "零星垃圾" Then
            sr2 = "-0.5分"
        ElseIf sr1 Like "*卫生差" Or sr1 Like "乱搭盖" Or sr1 Like "乱张贴" Or sr1 Like "乱拉挂" Then
            sr2 = "-1分"
        ElseIf sr1 Like "*垃圾堆积" Or sr1 Like "建筑垃圾" Then
            sr2 = "-2分"
        ElseIf sr1 Like "*陈年垃圾" Or sr1 Like "卫生死角" Or sr1 Like "焚烧垃圾" Then
            sr2 = "-3分"
        End If
        x = x + Val(sr2)
    Next
    .Cell(.Rows.Count, 4).Range.Text = 100 + x & "分"
End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-6-8 20:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
182197315 发表于 2018-6-8 18:41
Sub aa()
Dim i%, sr1$, sr2$, x As Single
With ActiveDocument.Tables(1)

你的代码忘记给最右列单元格赋值了吧?

TA的精华主题

TA的得分主题

发表于 2018-6-8 20:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub aa()
Dim i%, sr1$, sr2$, x As Single
With ActiveDocument.Tables(1)
    For i = 2 To .Rows.Count - 1
        sr1 = .Cell(i, 2).Range.Text
        .Cell(i, 2).Select
        
'        sr2 = .Cell(i, 4).Range.Text
        'Like 匹配的关键字前后都要有*号,不然“保洁不到位”后面有字符,就匹配不了
        If sr1 Like "*保洁不到位*" Or sr1 Like "*零星垃圾*" Then
            sr2 = "-0.5分"
            .Cell(i, 4).Range.Text = sr2 '赋值
        ElseIf sr1 Like "*卫生差*" Or sr1 Like "*乱搭盖*" Or sr1 Like "*乱张贴*" Or sr1 Like "*乱拉挂*" Then
            sr2 = "-1分"
            .Cell(i, 4).Range.Text = sr2 '赋值
        ElseIf sr1 Like "*垃圾堆积*" Or sr1 Like "*建筑垃圾*" Then
            sr2 = "-2分"
            .Cell(i, 4).Range.Text = sr2 '赋值
        ElseIf sr1 Like "*陈年垃圾*" Or sr1 Like "*卫生死角*" Or sr1 Like "*焚烧垃圾*" Then
            sr2 = "-3分"
            .Cell(i, 4).Range.Text = sr2 '赋值
        End If
        x = x + Val(sr2) '累积扣分
    Next i
    .Cell(.Rows.Count, 4).Range.Text = 100 + x & "分"
End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-6-8 20:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
妙觉观自在 发表于 2018-6-8 20:10
你的代码忘记给最右列单元格赋值了吧?

.Cell(.Rows.Count, 4).Range.Text = 100 + x & "分"

TA的精华主题

TA的得分主题

发表于 2018-6-8 21:00 | 显示全部楼层
182197315 发表于 2018-6-8 20:46
.Cell(.Rows.Count, 4).Range.Text = 100 + x & "分"

每遍历到一行的时候,要给当前行的第4列单元格赋予分值啊。
.Cell(i, 4).Range.Text = sr2 '赋值

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-9 13:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
妙觉观自在 发表于 2018-6-8 20:22
Sub aa()
Dim i%, sr1$, sr2$, x As Single
With ActiveDocument.Tables(1)

非常好,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-9 16:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
妙觉观自在 发表于 2018-6-8 20:22
Sub aa()
Dim i%, sr1$, sr2$, x As Single
With ActiveDocument.Tables(1)

发现一个问题,代码在单个文件运行时,得分正确,我用代码批量处理同一个文件夹下的多个文件时,得分不正确

TA的精华主题

TA的得分主题

发表于 2018-6-9 16:46 | 显示全部楼层
ww0000 发表于 2018-6-9 16:24
发现一个问题,代码在单个文件运行时,得分正确,我用代码批量处理同一个文件夹下的多个文件时,得分不正 ...

批量运行时,运行另外一个时候,x要先清零的……。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-26 15:11 , Processed in 0.043206 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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