【问题标题】:Formatting Dates with "-" separators and not "/"使用“-”分隔符而不是“/”格式化日期
【发布时间】:2020-09-06 04:47:17
【问题描述】:

以日期包含在文件名中的方式提供给我一个文件。

我已经编写了一个代码来根据日期检索文件。

文件名为xxxx_MM-DD-YYYY,不可更改。

我的代码在半个月内有效。比如文件名是xxxx_05-15-2020,用户可以输入日期,05-15-2020,就会被检索到。

如果用户输入 05-03-2020 ,Excel 会将此格式更改为 05/03/2020,并且基于新格式,代码将无法工作,因为它正在寻找“-”分隔符而不是“/ ”。

如何选择 MM-DD-YYYY 格式?

【问题讨论】:

  • 您当地的默认日期格式是什么? dd/mm/yyyy ?
  • 如果您将输入单元格格式化为文本,那么 Excel 将不会对用户输入的任何内容执行任何操作。

标签: excel vba date format


【解决方案1】:

无论您的日期是存储为日期类型变量还是字符串类型变量,以下内容都应该有效:

dateString = Replace(dateVar, "/", "-")

如果您需要将日期转换为日期类型变量,您可以像这样使用cDate

cDate(dateString)

假设您的日期存储为日期类型变量,您可以这样格式化:

Format(dateVar, "dd-mm-yyyy")

详细了解Format 函数here

【讨论】:

  • 感谢这个米奇,你能告诉我如何在我现有的代码中实现它,因为我遇到了麻烦:WorkBooks.open filename := "C:\Users\MyName\Desktop\BTM\Report " &格式(范围(“E3”),“mm.dd.yyyy”)和“.xlsx”
  • 您是否在即时窗口中尝试过Debug.print "C:\Users\MyName\Desktop\BTM\Report " & Format(Range("E3"), "mm.dd.yyyy") & ".xlsx"?除非您指定的文件路径与实际文件路径完全匹配,否则它将不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多