如何用vba遍历含有合并单元格的word表格? |
您所在的位置:网站首页 › word的vba有什么用 › 如何用vba遍历含有合并单元格的word表格? |
如何用vba遍历含有合并单元格的word表格?
2018年8月28日
作者:水星Excel
11,416 次浏览
暂无评论
在用vba处理word的表格时,经常会遇到word表格中的合并单元格。 它不同于excel的合并单元格,word vba表格中没有属性可以判断单元格是否是合并单元格。 当遇到word表格中有合并单元格时,如果用逐个单元格遍历的方式,往往会弹出错误的提示。 如下图所示 如果要用vba将word表格中除了序号以外的所有数字设置为两位小数,用如下的代码: Sub QQ1722187970() Dim oCell As Cell Dim oTable As Table Dim iCol For Each oTable In ActiveDocument.Tables With oTable For Each oCell In .Range.Cells If oCell.Column > 1 Then With oCell sText = oCell.Range.Text sText = Replace(sText, Chr(13) & Chr(7), "") If IsNumeric(sText) Then sText = VBA.Format(sText, "##0.00") oCell.Range = sText End If End With End If Next End With Next End Sub因为word的表格中含有合并单元格,导致单元格的宽度不一致,所以无法用遍历的方式访问。 在 如何用vba选中word表格中行、列、单元格?一文中,我们介绍了通过用Selection对象的SelectCell、SelectRow、SelectColumn方法可以选中word表格中的行、列、单元格对象。 通过选中word表格行、列后再遍历的方式可以绕开合并单元格的坑,比如上述的案例可以通过如下的代码来解决: Sub QQ1722187970() Dim oCell As Cell Dim oTable As Table Dim iCol For Each oTable In ActiveDocument.Tables With oTable iCol = .Columns.Count For i = 2 To iCol '先选中单个单元格 .Cell(1, i).Select '再选中整列 Word.Selection.SelectColumn '然后遍历 For Each oCell In Word.Selection.Cells With oCell sText = oCell.Range.Text sText = Replace(sText, Chr(13) & Chr(7), "") If IsNumeric(sText) Then sText = VBA.Format(sText, "##0.00"): oCell.Range = sText End If End With Next Next i End With Next End Sub 其它相关文章推荐:word表格单元格中的结尾字符是什么?如何用vba处理word表格?如何用vba定位word表格的单元格,并且删除单元格中的特定字符?如何用vba对选中的word表格单元格的数字进行求和?如何用vba选中word表格中行、列、单元格?如何用vba在word文档中实现文本内容的修改、删除、添加等各种操作? 分类 : VBA , WORD VBA 标签 : SelectColumn , word表格 , 合并单元格声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |