Exceldate到string转换

在Excel工作表的单元格中,我有一个Date值,如下所示:

01/01/2010 14:30:00 

我想将该date转换为文本,也希望文本看起来像date。 所以01/01/2010 14:30:00的Date值应该看起来像01/01/2010 14:30:00但内部应该是Text。

我如何在Excel中做到这一点?

 =TEXT(A1,"DD/MM/YYYY hh:mm:ss") 

(24小时的时间)

 =TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM") 

(标准时间)

这是一个VBA的方法:

 Sub change() toText Sheets(1).Range("A1:F20") End Sub Sub toText(target As Range) Dim cell As Range For Each cell In target cell.Value = cell.Text cell.NumberFormat = "@" Next cell End Sub 

如果你正在寻找一个没有编程的解决scheme,问题应该被转移到超级用户。

这是另一种select。 使用内置的“文本到列”向导中的Excel。 它在Excel 2007中的“数据”选项卡下find。

如果您select了一列,则文件types和分隔符的默认值应该可以工作,然后提示您更改列的数据格式。 select文本强制它为文本格式,以确保它不被存储为date。

在某些情况下,预先使用“字符”会起作用,但是如果保存到CSV并再次加载,则这是不可能的。

 '01/01/2010 14:30:00 

如果您没有使用编程,请执行以下操作(1)select列(2)右键单击并select格式单元格(3)select“自定义”(4)在“types”下方键入dd / mm / yyyy hh:mm :SS

在Excel 2010中, marg的答案只适用于我在电子表格中导入的一些数据。 以下解决scheme适用于所有数据。

 Sub change() toText Selection End Sub Sub toText(target As range) Dim cell As range Dim txt As String For Each cell In target txt = cell.text cell.NumberFormat = "@" cell.Value2 = txt Next cell End Sub 

所选的答案不适用于我,因为Excel仍然没有将文本转换为date。 这是我的解决scheme。

说,在第一列A,你有types的数据2016/03/25 21:20:00但存储为文本。 然后在B列写=DATEVALUE(A1)和列C写=TIMEVALUE(A1)

然后在D列中do =B1+C1添加date和时间的数字格式。

最后,通过在列E中单击右键,将D中的值复制到E列,然后selectPaste Special -> Paste as Values

突出显示E列中的数值,并将数据types更改为date – 我更喜欢使用formsYYYY-MM-DD HH:MM:SS的自定义date。

我不知道这个问题的发表年份, 现在可能已经老了。 所以,我希望我的回答能够成为我发布后的类似问题的一个参考。

我不知道那里有没有人给我一个类似于我即将给予的答案,这可能会导致 – 我认为 – 是最简单,最直接和最有效的方法:如果有人已经提供了,我表示歉意,但我没有看到它。 在这里,我的答案使用CStr而不是TEXT:

Asuming单元格A1包含一个date,并使用VBA代码:

 Dim strDate As String 'Convert to string the value contained in A1 (a date) strDate = CStr([A1].Value) 

此后,您可以使用string函数(MID,LEFT,RIGHT,LEN,CONCATENATE(&)等)将其作为任何普通string进行操作。