excel - 打开另存为窗口并从单元格填充文件名和文件路径

标签 excel vba

我正在尝试打开“另存为”窗口并从单元格填充文件名和文件路径

这是我的代码,它填充文件名并在文件路径中打开“另存为”窗口,但是当我单击“保存”时,文件永远不会显示在应该保存的位置。

Sub Save()

'Adds formula to show file path
ActiveSheet.Range("I26") = "=LEFT(CELL(""filename"",RC),FIND(""["",CELL(""filename"",RC),1)-1)"

'Adds formula to show file name
ActiveSheet.Range("J26") = "=MID(CELL(""filename""),FIND(""["",CELL(""filename""))+1,(FIND(""]"",CELL(""filename""))-FIND(""["",CELL(""Filename""))-8))"

ActiveSheet.Calculate 'Calculate sheet

'this will remove the formula from the cell making it text only
ActiveSheet.Range("I26") = ActiveSheet.Range("I26")
ActiveSheet.Range("J26") = ActiveSheet.Range("J26")


Dim FilePath As String
Dim FileName As String
FilePath = ActiveSheet.Range("I26").Value
FileName = ActiveSheet.Range("J26").Value


Dim fPth As Object
Set fPth = Application.FileDialog(msoFileDialogSaveAs)

With fPth
    .InitialFileName = FilePath & FileName & ".xlsm"
    .Title = "Save your File"
    .InitialView = msoFileDialogViewList
    .Show
End With


End Sub

最佳答案

文件对话框实际上并不保存文件 - 它只是提示用户输入文件名或允许用户更改默认文件名。您必须取回选定的文件名并独立保存它,如下所示:

Dim fPth As Object
Set fPth = Application.FileDialog(msoFileDialogSaveAs)

With fPth
  .InitialFileName = FileName & ".xlsm"
  .Title = "Save your File"
  .InitialView = msoFileDialogViewList
  If .Show <> 0 Then
    ThisWorkbook.SaveAs FileName:=.SelectedItems(1), FileFormat:=xlWorkbookNormal
  End If
End With

关于excel - 打开另存为窗口并从单元格填充文件名和文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865866/

相关文章:

VBA 邮件合并长度 > 255

excel - 使用 VBA 宏继续遇到运行时错误 '5'

excel - 匹配一个数字 >= A 列和 < B 列返回 C 列#

ms-access - 更新Microsoft Access数据库中的特定表和字段时,是否可以执行VBA代码?

excel - 验证内容-不允许用户输入-给出无效数据报告

excel - 索引-与垂直和水平标准匹配

excel - 如何区分线性区域和二次区域

vba - 使用 Excel VBA 搜索 Outlook 电子邮件(并回复它)

python - 如何使用 xlrd 读取公式

java - 我的错误在哪里?