考虑: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
当我在第一个列表的末尾粘贴第二个列表然后将列表排序为一个列表时,第二个列表中的数字全部放在顶部,因为第二个列表全部是数字。
如果我想将第二个列表更改为文本值,该怎么办?救命啊!
请注意,如果我将第一个列表文本值单元格更改为数字,我将松开“0”作为第一个字符。所以我需要所有文字。
PS。如果有人知道的话,代码解决方案以及如何使用Excel GUI都会很好。
PPS。以上描述仅是问题的代表性示例,在处理电话号码和数据数据的导出和导入时问题再次发生。 Excel似乎喜欢出于某种原因将数字转换为文本值。)
哈维
答案 0 :(得分:2)
我建议不将第二个表格转换为文本值。将第一个表格更改为数字并使用自定义数字格式 0000 将数字显示为带有前导零的4位数字。
当你完成后,你应该有一整列数字显示为带有前导零的四位数(如有必要)。排序应该没问题。
答案 1 :(得分:0)
我已经写过这个VBA,我认为这是一个"终极"回答我的问题。
Public Function ConvertValueToHaveTextDataType(Avalue As Variant) As String
ConvertValueToHaveTextDataType = CStr(Avalue)
End Function
PS。有关更全面的解释,请参阅SO 28000600 here