Garrett问是否有一种方法可以将文本数据快速转换为数字数据。他正在导入一个文本文件,该文件在千位(1 256)中使用空格而不是逗号(1,256)。

有几种方法可以解决此问题。首先是了解问题的根源。该文本文件可能是在遵循度量标准的系统上创建的。某些国家/地区采用公制标准后,使用千位分隔符而不是逗号。因此,如果在启动Excel和执行导入之前在Windows中更改了区域设置,则可以将文件正确导入到Excel中。您可以使用控制面板更改区域设置。

如果您不想更改系统上的区域设置,则可以采用其他方法。 Excel导入信息后,您可以选择包含数字的单元格范围,然后简单地进行搜索和替换。您正在搜索一个空格,什么也不替换。这将完全消除空间,然后Excel将把单元格的内容视为数字。

如果需要,还可以使用公式来修改导入的数据。例如,如果导入的数字(包含空格)在单元格A3中,则可以使用以下公式来去除空格:

=1*SUBSTITUTE(A3," ","")

请注意,第一组引号之间没有空格,而第二组引号之间没有空格。

如果您要转换的数据很多,或者文本中插入了“仅数字”单元格,则可以决定使用宏进行转换。以下宏适用于您在调用之前所做的选择。它还会检查以确保删除空格后的单元格包含数字值。如果不是,则不进行任何转换。

Sub ClearSpacesIfNumeric()

Dim c As Range 'Cell under examination     Dim tmpText As String 'Cell contents without spaces     Dim i As Integer 'Simple counter

For Each c In Selection         tmpText = "" 'Initialize

'Check each character to see if it's a space         'If it isn't, add it to tmpText         For i = 1 To Len(c.Text)

If Mid(c.Text, i, 1) <> " " Then                 tmpText = tmpText & Mid(c.Text, i, 1)

End If         Next i

'tmpText is now the cell contents without spaces         'If tmpText is a number, assign its value to         'the current cell         If IsNumeric(tmpText) Then             c.Value = tmpText         End If     Next c End Sub

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12058)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处找到适用于Excel的较早菜单界面的本技巧的版本: