我有一组通过PHP脚本下载的数据 - 一个特定列的数据如下
8 A, 30 A, 35 A, 100 A, 12 A
现在excel会自动将它们转换为以下格式
8:00 AM, 30 A, 35 A, 100 A, 12:00 AM
对于所有小于24的数字,这种自动转换为时间格式非常令人沮丧。
我通过自定义vba函数尝试了以下regexreplace
=regexreplace(TextCell, A$, "")
正则表达式适用于所有其他但不是这个。这有什么解决方案吗?
答案 0 :(得分:1)
正则表达式适用于所有其他但不是这个。这有什么解决方案吗?
我不确定我是否明白你需要什么?请举例说明你想用这个正则表达式做什么?
如果你想回到原来的值那么你可以简单地格式化时间值(DateTime像Double一样存储),例如:
Dim txt As Strig
txt = Format(Cells(1, 1).Value, "0 A")
请记住将单元格/列的数据格式设置为' Text' - 如果您希望在工作表中存储适当的值,例如:
Range("A1").NumberFormat = "@"
Range("A:A").EntireColumn.NumberFormat = "@"
对于所有小于24的数字,这种自动转换为时间格式非常令人沮丧。
请提供有关何时转换以及如何使用此文件的详细信息?
我问,因为,可能你可以关闭这个'自动转换'也许这将是一个好方法。
例如,如果您有CSV文件,那么当您在Excel中导入此文件时 - 您必须通过“对话框”导入设置' ...并且您可以将列的格式设置为'文字',然后就像'一样导入。
。答案 1 :(得分:0)
嗯,将值格式化回格式的快速解决方案是:
=IF(ISNUMBER(A1),A1*24&" A",A1)
或:
=IF(ISNUMBER(A1),HOUR(A1)&" A",A1)