我怎样才能在单元格范围内的数值,并将其转换为文本值

考虑一下:Paste special可以让你通过粘贴另一个值为1的单元格并使用值和乘法选项来将范围内的文本转换为数字,但是如果我想做相反的操作。

即把一个存储为123的值存储为一个文本值'123

存储的实际值不仅需要改变显示方式,

我正在处理电话号码,并发现需要将两个列表与数字合并到一个列表中,以便查找目的需要按文本顺序存储。

所以我的地区代码看起来像这样(数字存储为文本)

 ColumnA ColumnB 0113 Leeds 0113 Leeds 0114 Sheffield 0114 Sheffield 0115 Nottingham 0116 Leicester 

我的国际拨号代码列表看起来像这样(号码存储为一个数字)

 7 Turkmenistan 20 Egypt 27 South Africa 30 Greece 31 Netherlands (Holland) 32 Belgium 33 France 

当我在第一个列表的末尾粘贴第二个列表,然后将列表作为一个sorting,第二个列表中的数字全部在顶部,第二个是所有的数字。

如果我想将第二个列表更改为文本值,该怎么办! 帮帮我!

请注意,如果我将第一个列表文本值单元格更改为数字,我会将“0”作为第一个字符。 所以我需要他们所有的文字。

PS。 如果有人知道,一个代码解决scheme将是一个好的方法,以及如何使用Excel的GUI来做到这一点。

PPS。 上面的描述只是这个问题的一个代表性的例子,在处理电话号码和数据数据的输出和input时,这个问题会重新出现。 Excel似乎喜欢将数字转换为文本值由于某种原因)。

哈维

我会build议把第二个表转换为文本值。 将第一个表格更改为数字,并使用自定义数字格式0000来将数字显示为具有前导零的4位数字。

  1. 将整列设置为一般格式。
  2. 使用数据►数据工具►文本到列。 第一个屏幕select固定宽度,然后单击完成
  3. 这些列应该都是通用格式的右alignment数字。 select列中的所有数字,然后点击Ctrl + 1 。 “格式单元格”对话框打开后,转到“ 数字”选项卡,然后从左侧的列表中select“ 自定义 ”。 在“ types”中使用0000 ,然后单击右下angular的“ 确定 ”。

完成后,您应该有一整列数字显示为四位数字(如有必要)。 sorting应该没有问题。

我写了这个VBA,我认为这是我的问题的“最终”答案。

 Public Function ConvertValueToHaveTextDataType(Avalue As Variant) As String ConvertValueToHaveTextDataType = CStr(Avalue) End Function 

PS。 更全面的解释请参阅SO问题28000600