VBA遍历Wrod所有表格每个单元格,单元格未尾两个回车替换

一、遍历

      word中遍历所有表格的每个单元格。因为在单元格时会常出错。浪费了不少时间。

        

Sub a()
    
    Dim doc As Document, tb As Table, ce As cell
    Dim rng As Range, p As Paragraph
    
    Set doc = ActiveDocument
    
    For Each tb In doc.Tables
        For Each ce In tb.Range.Cells '关键处就是这里一定要用tb.Range.Cells
            '具体处理每个单元格中的东西
            Set p = ce.Range.Paragraphs.Last '单元格最后一个段落
            If Asc(p.Range.Text) = 13 Then '看似没东西,实则若是^13时
                Set p = p.Previous '上一个段落
                If Not p Is Nothing Then '不能为空,表示至少2个段落
                    Set rng = p.Range
                    rng.Collapse wdCollapseEnd
                    rng.MoveEnd wdCharacter, -1
                    rng.Delete
                End If
            End If
        Next
    Next
End Sub

     注意:一定是tb.Range.Cells,否则你去判断合并横向或纵向单元格,会累死人。

二、两个回车符

    单元格最后看似是两个回车符,用^p去替换^p^p,无效。然后用vba逐个字符查看了一下,最后两个看似回车符的是^13^13,也即vbCr,用^13去替换^13^13无效,好像很多年前,这样替换就出现过问题,尽管正确,但在单元格的最后两个字符替换时会失效。

     所以在单元格时,一般用硬键盘来做。即直接用模拟键盘的删除键来做。做判断有这样的字符(见上面代码),再定位到这个段落的末尾,直接用键盘delete进行删除。果然有效。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值