VBA脚本复制xls数字到xlsx时末尾自动添加三个零的问题求助
解决VBA复制xls数值到xlsx后变文本加三个零的问题
这种坑我之前踩过!从xls复制数值到xlsx出现文本格式+末尾加三个零,大概率是复制粘贴的方式或者格式兼容搞的鬼,给你几个靠谱的解决办法:
直接赋值单元格值(最推荐)
别用复制粘贴,直接通过Value属性把源单元格的数值传给目标单元格,完全绕开格式问题:' 示例代码:假设源工作表是sourceWs,目标工作表是targetWs ' 把源B2单元格的值放到目标A1 targetWs.Range("A1").NumberFormat = "General" ' 先设置目标为通用/数值格式 targetWs.Range("A1").Value = sourceWs.Range("B2").Value这种方式直接读取单元格存储的真实数值,不会受显示格式影响,也不会出现格式转换错误。
用带值的粘贴方式
如果一定要用复制粘贴,别用默认的全粘贴,指定只粘贴值:sourceWs.Range("B2").Copy targetWs.Range("A1").PasteSpecial Paste:=xlPasteValues ' 只粘贴值 ' 或者粘贴值+数字格式,保留源的数值格式 ' targetWs.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats Application.CutCopyMode = False ' 清除剪贴板状态,避免弹窗排查潜在的格式问题
虽然你说源数据没问题,但可以再确认下:源单元格是不是用了自定义格式隐藏了小数位?比如源值其实是11000,但设置了0的格式只显示整数部分?如果是这种情况,直接用Value赋值也能拿到真实数值,不会被显示文本误导。
另外,目标单元格如果提前设为文本格式,也可能导致数值被强制转换,所以最好先把目标区域设置为通用或数值格式再赋值。
内容的提问来源于stack exchange,提问作者akelopes
相关产品推荐
相关产品推荐

