在日期VBA中用连字符替换正斜杠

时间:2017-10-18 16:23:42

标签: excel excel-vba vba

我已经搜遍过,通常会找到我的答案,但这个很奇怪。我必须格式化程序的日期,使其在日期中没有正斜杠来写入文件路径。我可以让单元格中的外观显示为使用连字符,但公式栏中的仍会显示反斜杠。

例如,今天的日期可以输入到单元格A1中作为“10/18/2017”,它将出现在单元格中,它被键入为“10-18-2017”< / em>,但在公式栏中,当我得到该单元格的值时,它仍然是 10/18/2017 。 我正在提取像Range("A1").value

这样的值

以下是我用来尝试更改单元格实际值的代码。

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

这完全是我上面提到的。诱使用户认为他们解决了问题,但并非如此。然后我想,让我们只替换/字符......

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

仍然没有骰子,也没有任何我能在网上找到的东西。对不起,如果已经回答,我搜索并搜索,即使在堆栈

3 个答案:

答案 0 :(得分:1)

公式栏中显示的值与您在Excel中格式化日期的方式无关。

这是一个系统范围的设置,您必须通过转到控制面板&gt;进行修改。地区和语言。

编辑:

而且,正如K.Davis在您的评论中所说,您只需使用Format(rng, "mm-dd-yyyy")来命名文件。

答案 1 :(得分:0)

使用Range("A1").Text代替Range("A1").Value,您可以获得应用于单元格的任何格式。

答案 2 :(得分:0)

您可以在代码中格式化字符串

    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