![阻止 Excel 猜测单元格格式](https://linux22.com/image/1560394/%E9%98%BB%E6%AD%A2%20Excel%20%E7%8C%9C%E6%B5%8B%E5%8D%95%E5%85%83%E6%A0%BC%E6%A0%BC%E5%BC%8F.png)
我有一个这样的专栏:
000123-1234
000123-1234
000123-1234
012345-5678
123456-1234
234567-2345
345678-3456
我需要删除破折号。如果我标记该列并进行搜索替换,Excel 会认为:“是的,好吧 - 现在这一定是一个数字。而且数字没有前缀零;所以我最好删除它们。”但不行!我需要零!
我尝试将单元格格式化为文本、“标准”和数字 - 但没有成功。
我怎样才能阻止 Excel 尝试帮助我 - 并让它按照我的指示去做仅此而已!?
我知道我可以创建两个新列,首先获取前 6 个字符,然后获取后 4 个字符,然后将它们合并在一起...但这真的是最好的方法吗!?
答案1
这看起来是 Excel 中已知的行为。
您可以使用宏来保留文本格式并执行查找/替换。使用以下子例程:
Sub RemoveHyphen(RangeString As String)
For Each Cell In Range(RangeString)
Cell.NumberFormat = "@"
Cell.Value = Replace(Cell.Value, "-", "")
Next Cell
End Sub
RemoveHyphen("A1:A7")
在 VBA 立即窗口中调用子程序。它将把所有单元格格式化为文本并删除连字符。
答案2
包含列中的数据A, 在B1进入:
=SUBSTITUTE(A1,"-","")
并向下复制。然后复制列乙并PasteSpecialValues
回到柱子上A。任何前导零都将被保留!