在Excel中将按时间格式化的文本转换为文本

我有一组通过PHP脚本下载的数据 – 一个特定列的数据如下

8 A, 30 A, 35 A, 100 A, 12 A 

现在Excel自动将它们转换为以下格式

 8:00 AM, 30 A, 35 A, 100 A, 12:00 AM 

这种自动转换为时间格式是相当令人沮丧的所有数字less于24。

我已经通过自定义vba函数尝试了下面的regexreplace

  =regexreplace(TextCell, A$, "") 

正则expression式适用于所有其他但不是这一个。 有没有解决scheme?

正则expression式适用于所有其他但不是这一个。 有没有解决scheme?

我不确定我是否明白你需要什么? 请给我一个你想用这个正则expression式来做的例子吗?

如果你想回到原来的值,那么你可以简单地格式化时间值(DateTime存储为像双),例如:

 Dim txt As Strig txt = Format(Cells(1, 1).Value, "0 A") 

请记住将单元格/列的数据格式设置为“文本” – 如果要在表格中存储适当的值,例如:

Range("A1").NumberFormat = "@"

Range("A:A").EntireColumn.NumberFormat = "@"

对于所有小于24的数字,这种自动转换为时间格式相当令人沮丧。

请提供有关何时转换以及如何使用此文件的更多信息?

我问,因为可能你可以closures这个“自动转换”,也许这将是一个好方法。

例如,如果你有CSV文件,那么当你在Excel中导入这个文件 – 你必须通过对话框与“导入设置”…你可以设置栏的格式为“文本”,那么它将被导入像“是。

在这里输入图像说明

那么,将这些值重新格式化的快速解决scheme将是:

 =IF(ISNUMBER(A1),A1*24&" A",A1) 

要么:

 =IF(ISNUMBER(A1),HOUR(A1)&" A",A1)