【问题标题】:Excel VBA for opening a file with a date in the filename that changesExcel VBA用于打开文件名中日期更改的文件
【发布时间】:2014-08-09 22:15:27
【问题描述】:

我有一个每天创建的 Excel 文件,名为 "three day outlook 7-7-2014。日期每天都在变化,但文件按天存储在一个文件夹中,所以我有多个名为 "three day outlook" 但日期不同的文件。

我正在尝试使用 VBA 代码按日期打开某些文件,这些文件由另一个 Excel 工作表上的日期选择选择。我尝试了以下方法:

Workbooks.Open Filename:=("C:\Users\sdfe\Documents\three day outlook" & Cells(D3).xlsx)

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    尝试以下方法:

    Workbooks.Open Filename:="C:\Users\sdfe\Documents\three day outlook " & Range("D3") & ".xlsx"
    

    根据您的问题,“展望”一词和日期之间有一个空格字符。我假设日期在表格上以正确的格式格式化。事实上,最好显示一个消息框,其中包含您尝试打开的文件的路径。比如:

    MsgBox """C:\Users\sdfe\Documents\three day outlook " & Range("D3") & ".xlsx"""
    

    并确保在使用之前正确构造此字符串。

    更新(在您的评论之后):

    由于您的日期格式为“2014 年 7 月 7 日”而不是“2014 年 7 月 7 日”,因此您可以做以下几件事:

    1. 将日期为 (D3) 的单元格格式化为 Text,以便您随意输入,并且不会因日期格式而改变。

      李>
    2. 将日期为 (D3) 的单元格格式化为 d-m-yyyy自定义 格式,然后使用 Range("D3") 而不是 Range("D3") 使用 @987654325 @。

    3. 保持单元格格式为 Date(我假设是这样),然后在上面,而不是 Range("D3") 使用 Format(Range("D3"), "d-m-yyyy")

    【讨论】:

    • 感谢两位的快速回复。
    • Dijikay 你是对的,路径名使用的日期范围是 2014 年 7 月 7 日而不是 2014 年 7 月 7 日。我已经更改了excel中的格式,但没有运气。我需要在 vba 中更改某些内容吗?
    • @user3146807:既然您对结果感到满意,请考虑检查左侧的勾号以接受答案,并让其他人知道这是一个有用且有帮助的答案。
    【解决方案2】:

    使用格式功能,以便您始终知道日期会是什么样子。每个人都会在他们的计算机上设置不同的日期格式。而且您永远不知道计算机是否只是将日期作为数字而不是日期发送。

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多