使用单元格作为位置在文件结构中保存文件的宏

Posted

技术标签:

【中文标题】使用单元格作为位置在文件结构中保存文件的宏【英文标题】:Macro to Save file within a file structure using cells as location 【发布时间】:2017-01-24 15:26:34 【问题描述】:

我一直在尝试编写一个宏来保存在特定文件位置,想法是定义了起始位置(这永远不会改变),然后单元格 B2 中有一个下拉列表(这是一个定义的文件夹位置)和单元格 B3 中的另一个下拉列表(这是 B2 中指定的文件夹中的子文件夹),然后是单元格 B4 中的文件名。

运行宏时文件位置似乎有些混乱,默认为C:\My Documents

作为测试,我删除了“范围“B3”'行并将文件保存在正确的文件夹位置。这是当前的宏:

Sub ThisFile()
varResult = Application.GetSaveAsFilename(FileFilter:= _
"Macro Enabled Workbook" & "(*.xlsm), *xlsm", Title:=Range("B4") & ".xlsm", InitialFileName:="G:\New Manufacturing Engineering\Gear Shop\Spiral Bevel\Miscellaneous\Stock Removal Test File\Stock Removal Sheets\" & Range("B2") & "\" & Range("B3") & "\" & Range("B4") & ".xlsm")
With ActiveWorkbook
    On Error GoTo message
    .SaveAs varResult & ".xlsm", FileFormat:=52
    Exit Sub
message:
    MsgBox "There is an error"
End With
End Sub

【问题讨论】:

可能文件的路径很高? 您是否仔细检查了您正在生成的字符串是否适用于存在的目录? GetSaveAsFilename 函数似乎只是默认为我的文档,而不是在您提供无效路径时引发错误。 【参考方案1】:

好吧,所以犯了一个菜鸟错误!下拉列表中的某些标题后面有空格,因此没有文件夹可以找到!!!

上面的宏完美运行

【讨论】:

以上是关于使用单元格作为位置在文件结构中保存文件的宏的主要内容,如果未能解决你的问题,请参考以下文章

从单元格中命名文件夹和文件,并将文件保存在文件夹中

使用 VBA 保存:不同单元格中的路径和文件名

保存时使用单元格值作为工作簿的文件名

在excel中另存为宏

Excel VBA 使用单元格文本作为文件名在当前目录中另存为

使用 VBA 将单元格区域导出到新的 .csv 文件中并保存而不覆盖