如何将单元格的格式更改为文本,同时保持所有数据完全如我所见-所见即所得

How to change Format of a Cell to Text while keeping all data exactly as i see with my eyes-WYSIWYG

我想制作一个宏,将我的 wb 中的所有单元格更改为 text 格式。 在我下面的代码中,它将所有单元格更改为文本格式,但该代码的问题是它并不总是 "what you see is what you get", 我的意思是,当 excel 更改单元格格式时,有时也会更改单元格内的数据。 例如:如果我将单元格格式从数字(十进制 place:4)更改为文本,“1.200”将采用文本格式“1.2”等... 有什么巧妙的方法可以将所有单元格更改为文本格式,同时保持所有数据与任何用户在他眼中看到的完全一样,无论他看到什么? (使用 vba)

VBA:

  Cells.Select
  Selection.NumberFormat = "@"

您可以尝试这样的操作:

Sub Test()

    Dim c, v

    For Each c In Selection.Cells
        v = c.Text
        c.NumberFormat = "@"
        c.Value = v
    Next c
End Sub

...假设所有内容都是可见的(即没有列太窄,导致值显示为“########”)但是 所见即所得...