如何确保所有格式为文本的Excel单元格实际上都是

我有一个由多个用户提交的内容列,通常从多个来源粘贴到工作表中。 此列中的数字应始终格式化为文本。 事实上,不pipe这样做如何,总是有一些项目从来没有在左边angular落的指示器,警告这些被格式化为文本(我们希望看到在所有情况下)

检查单个单元格时,它显示为格式化的文本,但实际上在导入到数据表格中时,如果缺less指示符,则将数据types导入为数字。 点击数字后点击Enter将会将指标更改为文字。

我如何在VBA中做到这一点? 我不想访问每个单元格,点击内容的结尾,然后按回车。剪切和粘贴特殊的组合可靠地修复这些。

excel究竟看什么,这些文本格式的警告指示符正确地解决了格式问题,但是在查看单元格格式属性时却似乎没有正确的解决问题。

在这里输入图像说明

Excel 2003,但在后来的版本也有同样的问题。

我的工作是检查错误指标,这似乎比单元格格式本身更可靠。 这看起来缺less指标的任何东西,并强制它是文本。

除非有人进一步了解为什么不这样做,它解决了我的问题。

Sub check4textformat() For Each cell In Range("E2:E15000") If cell.Errors.Item(xlNumberAsText).Value = False Then cell.Formula = cell.Text Next End Sub 

你真的只需要在每个数字之前加上文字指示符“”“。 假设你的值在第一列,在前120行,你可以这样做:

 For i = 1 To 120 Me.Cells(i, 1).Value = "'" & Me.Cells(i, 1).Value Next i 

如果单元格已经有文本值,则预先忽略。 复制时(以及在VBA中获取值时),“'”将被完全忽略,因为它仅指示单元格内容的“types”。

既然你的主要目标不是访问每个单元格,我会build议比VBA更简单的方法(实际上,这可能是最简单的方法)。

  1. select所需的列。
  2. 转到数据>文本到列。
  3. select“分隔”(默认情况下应该已经select),然后按“下一步”。
  4. 取消选中所有分隔符,然后按“下一步”(您也可以将“制表符”的默认状态作为唯一的分隔符)。
  5. 在“列数据格式”下,select“文本”,然后点击“完成”。

完成。 现在列中的所有数字都应该作为文本存储。