【问题标题】:Open a file from a path according to date entered根据输入的日期从路径打开文件
【发布时间】:2017-11-27 08:53:59
【问题描述】:

我正在尝试从用户指定日期生成的文件夹中导入文件。

路径如下所示: \\sample\example_group\xxx_REPORTS\APPS\Reports\Regional\APP NAME\ 在最后一个“\”之后是今天的日期,格式为 yyyy/mm/dd。

文件夹名称不包含斜线。它是每天 app\year\month\day 生成的文件夹结构,所以它看起来像这样:\APP NAME\2017" & "\" & "myVal1" & "\" & "nyVal" & "\"

我正在尝试提示用户输入他正在查看报告的日期,然后让 Excel 打开该文件夹。

我有以下代码,但它没有考虑用户输入。

Sub ImportFile()
Dim dFile As FileDialog, result As Integer, it As Variant
Dim myDate As String
Dim myval2 As Variant

myval2 = InputBox("Enter today's date in yyyy/mm/dd format")
myDate = Format(Date, "yyyy/mm/dd")

Set dFile = Application.FileDialog(msoFileDialogOpen)

dFile.InitialFileName = "\\sample\example_group\xxx_REPORTS\APPS\Reports\Regional\APP NAME\" & "myval2"

If dFile.Show = -1 Then
    Debug.Print dFile.SelectedItems(1)
End If

End Sub

【问题讨论】:

  • name怎么能包含/? Windows 不允许这样做......所以你不可能有这样的名字。您的意思是根据文件(文件夹)的创建日期过滤吗?
  • 我应该指定的,文件夹名称不包含斜线。它是每天 app\year\month\day 生成的文件夹结构,因此从技术上讲,它看起来像这样:\APP NAME\2017" & "\" & "myVal1" & "\" & "nyVal" & "\"

标签: excel vba


【解决方案1】:

它不考虑用户的输入,因为您将变量名myval2 作为字符串传递。因此,它应该是这样的:

dFile.InitialFileName = "\gional\APP NAME\" & myval2

代替:

dFile.InitialFileName = "\gional\APP NAME\" & "myval2"

【讨论】:

  • 哎呀,这个有效,我放弃了“”,现在它正确使用了变量。非常感谢!
【解决方案2】:

文件夹名称不能包含正斜杠 (/),因此您的方法不起作用。我建议改用yyyy-mm-dd 格式。

【讨论】:

  • 嗨,是的,但文件夹本身使用 \ 作为日期。
  • 如果它使用反斜杠(年、月、日的单独文件夹),那么您应该将正斜杠转换为反斜杠。看看Replace 函数。
猜你喜欢
  • 1970-01-01
  • 2019-05-24
  • 2012-03-14
  • 1970-01-01
  • 2013-12-16
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
相关资源
最近更新 更多