在dateVBA中用连字符replace正斜杠

我已经找遍了,通常find我的答案,但这是一个奇特的。 我必须格式化一个程序的date,以便在写入文件path的date没有正斜杠。 我能够在单元格中看起来像是使用连字符,但公式栏中的仍然以反斜杠显示。

例如,今天的date可以input到单元格A1中作为“10/18/2017” ,它会出现在单元格中input为“10-18-2017” ,但是在公式栏中,当我得到该细胞仍然是10/18/2017 。 我提取的值如: Range("A1").value

下面是我正在使用的代码来尝试更改单元格的实际值。

 Range("A1").NumberFormat = "mm-dd-yyyy" 

这正是我上面提到的。 诱使用户认为他们解决了问题,但不是真的。 然后,我想我们只要更换/字符…

 Range("A1").value = Replace(Range("A1").value, "/", "-") 

仍然没有骰子,没有任何我能find的interwebs。 对不起,如果这个答案,我search和search,即使在堆栈

使用Range("A1").Text而不是Range("A1").Value值得到任何格式应用到单元格。

在公式栏中显示的值与Excel中如何格式化date无关。

这是一个系统范围的设置,你需要通过控制面板>区域和语言来修改。

编辑:

而且,正如K.Davis在你的评论中所说,你可以简单地使用Format(rng, "mm-dd-yyyy")命名这些文件。

您可以在代码中格式化string

  Sub SaveIt() Dim s As String s = Format(Range("A1"), "mm-dd-yy") ActiveWorkbook.SaveAs Filename:="C:\Users\dmorrison\Downloads\" & s & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End Sub