从Word表格复制数据到Excel时如何提取纯数值(去除特殊字符)
解决Word表格数据末尾带Chr(7)和Chr(13)的问题
要提取Word表格里的纯数值,核心是清理Range.Text返回的额外非打印字符——Word表格单元格的文本默认会带上Chr(13)+Chr(7)的单元格结束标记,这就是你看到的多余字符来源。
给你两种直接修改代码的方案:
方案1:批量替换目标字符
用Replace函数嵌套,直接清空不需要的字符,不管它们出现的顺序或次数:
修改获取数据的行:
HoldValues(irow - 1) = Replace(Replace(d.Tables(2).Cell(irow, WordCol(j)).Range.Text, Chr(7), ""), Chr(13), "")
适合单元格内容可能意外包含这些字符的场景,兼容性更强。
方案2:截断固定末尾结束符
因为Word单元格的Range.Text末尾固定是Chr(13)+Chr(7)两个字符,也可以直接截取前面的有效内容:
Dim cellText As String cellText = d.Tables(2).Cell(irow, WordCol(j)).Range.Text HoldValues(irow - 1) = Left(cellText, Len(cellText) - 2)
这种方式效率更高,适合确定单元格是纯数值、没有换行的场景。
修改后的完整代码片段参考:
With d.Tables(2) For j = 4 To 7 ReDim HoldValues(NumQuest(j)) Offset = 0 For irow = 2 To NumQuest(j) + 1 ' 替换为上面任意一种方案即可 HoldValues(irow - 1) = Replace(Replace(.Cell(irow, WordCol(j)).Range.Text, Chr(7), ""), Chr(13), "") ws.Cells(PasteLocn(j) + Offset, chooseColumn) = HoldValues(irow - 1) Offset = Offset + 1 Next irow Next j End With
内容的提问来源于stack exchange,提问作者PLL
相关产品推荐
相关产品推荐

