vba – 在单元格中设置数据显示的date
可能是一个简单的问题,我只是不能指出我的数字,因为我还没有完全理解如何处理Excel中不同的“层”(数据实际上是在一个单元格中,而不是显示的内容)。date)
我有我的单元格内的以下数据
10/17/2014 10/18/2014 10/19/2014 10/20/2014
我跑了下面的vba代码,希望重新格式化这些数据:
Sheet1.Range("C2", "C1000").NumberFormat = "dd-mmm-yyyy"
这使得我的数据显示为:
17-Oct-2014 18-Oct-2014 19-Oct-2014 20-Oct-2014
这实际上是我想成为的。 唯一的问题是如果我点击实际的单元格内,数据仍然是10/18/2014格式。
现在从我的理解“格式”只会改变数据的显示方式。 我似乎无法在网上find如何在屏幕上显示的内容,并将单元格的值更改为正在显示的内容。 我认为这是一个“受欢迎”的问题,反复提问,或许我的search技能刚刚起飞,我找不到这篇文章。 任何帮助,将不胜感激。 谢谢。
我已经读过,我可以使用“select性粘贴”,但这需要格式化单元格,然后手动复制和粘贴值,这不是我想要的。 我希望完全自动化这个VBA里面。
尝试这个:
Sheet1.Range("C1:C1000").Value = Sheet1.Evaluate("""'"" & INDEX(TEXT(C1:C1000,""dd-mmm-yyyy""),)")
'
在开始时强制输出成文本。
你也可以这样做:
Sheet1.Range("C1:C1000").NumberFormat = "@" Sheet1.Range("C1:C1000").Value = Sheet1.Evaluate("INDEX(TEXT(C1:C1000,""dd-mmm-yyyy""),)")
这将把格式化为date的数字转换成看起来像date的文本。 换句话说,如果这些单元格上的任何引用或math公式都需要将它们转换回数字。