Excel VBA - 将 .xls 附加到文件名以打开文件

乏味的

我有代码可以打开一个带有可变日期的文件,如下所示。如果没有在输入框中输入 mdyxls,此代码将无法工作。我只想在输入框中输入 mdy 。请看一看,让我知道我缺少什么。谢谢!

Dim wbkOpen As Workbook
Dim strFilePath As String
Dim strFileName As String
strFilePath = "D:\Users\stefan.bagnato\Desktop\Daily Performance Summary\Agent Group Daily Summary "
strFileName = InputBox("Enter last Friday's date in the format M.D.Y", "Friday's Date")
Set wbkOpen = Workbooks.Open(strFilePath & strFileName, False, True)
大卫·泽门斯

这是基本的字符串连接:

strFilePath & strFileName & ".xls"

您可能应该检查以确保文件存在,否则会出现错误:

Dim fullFileName As String
strFilePath & strFileName & ".xls"
If Dir(fullFileName) = "" Then
    MsgBox "Invalid filename!"
    Exit Sub
End If
Set wbkOpen = Workbooks.Open(fullFileName, False, True)

理想情况下,您可以完全避免用户输入(容易出错):

Const strFilePath As String = "D:\Users\stefan.bagnato\Desktop\Daily Performance Summary\Agent Group Daily Summary "
Dim wbkOpen As Workbook
Dim LastFridayDate As String
Dim fullFileName As String
Dim fdlg as FileDialog
LastFridayDate = Format(Date - (Weekday(Date, vbFriday) - 1), "m.d.yy")
fullFileName = strFilePath & LastFridayDate & ".xls"

If Dir(fullFileName) = "" Then
    If MsgBox("The file named " & fullFileName & " doesn't exist. Would you like to manually locate the file?", vbYesNo) = vbNo Then
        Exit Sub
    Else
        Set fdlg = Application.FileDialog(msoFileDialogOpen)
        '## Opens the fileDialog in the normal folder where these files should exist
        fdlg.InitialFileName = strFilePath
        '## Display the fileDialog to the user
        fdlg.Show
        '## Validate the fileDialog hasn't been canceled
        If fdlg.SelectedItems.Count <> 0 Then
            '## Return the value of the item selected by the user
            fullFileName = fdlg.SelectedItems(1)
        Else:
            MsgBox "No file selected, exiting procedure..."
        End If
    End If
End If
Set wbkOpen = Workbooks.Open(fullFileName, False, True)

当然,允许用户手动选择文件最终可能需要额外的验证和/或错误处理(即,如果他们选择了错误的文件怎么办?程序如何知道哪个日期正确的日期[我敢打赌它不能,如果不做一个丑陋的蛮力循环,它仍然会做出很多可能并不总是成立的假设] 如果他们选择 PDF 或 PPT 文件而不是 XLS 等,但这些点完全超出了范围这个问题。)

如果您有其他后续跟进,请遵循适当的网站礼仪并提出新问题:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA从Access将Excel文件另存为.xls

来自分类Dev

在excel中根据变量文件名VBA打开文件

来自分类Dev

Excel VBA - 将单元格的内容添加到文件名的第一个空格中

来自分类Dev

将Excel文件(XLS或XLSX)转换为CSV文件

来自分类Dev

验证是否xls文件包含VBA宏而不在MS Excel中打开它

来自分类Dev

VBA - 将 .xls 插入 .xlsm

来自分类Dev

将路径附加到文件名

来自分类Dev

rails-将xls文件附加到电子邮件

来自分类Dev

rails-将xls文件附加到电子邮件

来自分类Dev

Excel VBA宏将文件名提取到自动电子邮件的正文中

来自分类Dev

Excel VBA重命名文件名

来自分类Dev

VBA 将文件扩展名验证为 excel 文件?

来自分类Dev

如何将VBA配置为仅打开Excel文件

来自分类Dev

使用cmd将文件日期附加到文件名

来自分类Dev

excel vba按钮将文本添加到文件

来自分类Dev

将CSV文件与Excel VBA合并

来自分类Dev

使用 VBA 将 rss 文件导入 Excel

来自分类Dev

bash脚本将单词附加到文件名

来自分类Dev

动态将文本附加到Bash中的文件名

来自分类Dev

将文字附加到PHP中的文件名?

来自分类Dev

自动将Excel(XLS)导出为CSV

来自分类Dev

无法将Excel(xls)导入Power BI

来自分类Dev

VBA将字符追加到目录中文件名的开头

来自分类Dev

Excel VBA如何将值列附加到数组?

来自分类Dev

使用Java脚本将多个HTML表导出到单个Excel文件(xls)

来自分类Dev

将 yyyy-mm 添加到 R 中的 excel 输出文件名

来自分类Dev

使用 to_excel 导出时将当前日期添加到文件名的末尾

来自分类Dev

将图片添加到Excel vba

来自分类Dev

使用GET参数从URL打开Excel(XLS)文件