2017-08-10 68 views
0

小问题在这里。我有一个应用程序,其中日期时间数据显示为欧洲格式的字符串。我做了一个快速的VBA脚本,将其转换为标准的美洲格式,并打算将其更改为DateTime值。相反,一旦我改变了格式,Excel会自动为我完成。到现在为止还挺好。唯一的问题是,它只显示日期,即使当我点击单元格时,它将日期和时间显示为一个值。例如,单元格显示值6/8/2017,但公式栏中列出的值是6/8/2017 12:56:07 PM。更改在Excel中通过VBA显示的内容

虽然这在技术上足够满足我的应用程序,但我希望将完整的值列在单元格中。我知道这可能可以通过更改Excel的属性来完成,我有点依赖于用户使Excel配置得恰到好处。我想知道的是,如果VBA中有方法告诉单元格或列显示完整值。

此外,我不相信Excel的“自动”功能,以防万一有人没有像我一样设置Excel。任何方式来覆盖这些?

+0

录制宏,而单元格的格式设置为您所需的显示 - 那么你可以结合到您的码。 –

+2

在VBA中,您可以使用单元格的'NumberFormat'属性来设置如何显示值(这听起来像是您想要的“mm/dd/yyyy hh:mm:ss AM/PM”格式)。显然,通过Excel的“格式单元格”选项执行相同的操作可能更容易。 – YowE3K

回答

0

您可以使用DATEVALUETIMEVALUE后跟所选单元格的NumberFormat属性。如果您发布代码,提供建议会更容易,但如果没有它,这里就是您可以尝试的一个示例。

Sub changeDateFormat() 
' 
' changeDateFormat Macro 
' Assuming the initial active cell (e.g., "A1") is a text of a date 
    Range("A1").Activate 

    While Not IsEmpty(ActiveCell) 
     ActiveCell.Offset(0, 1).Formula = "=DATEVALUE(RC[-1]) + TIMEVALUE(RC[-1])" 
     ActiveCell.Offset(0, 1).NumberFormat = "m/d/yy h:mm;@" 
     ActiveCell.Offset(1, 0).Activate 
    Wend 

End Sub 
相关问题