基于单元格值选择Excel另存为位置的宏给运行时错误1004

时间:2019-04-17 16:14:39

标签: excel vba

这是我的代码

Public Sub SaveAsA1()

With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = ActiveWorkbook.Sheets("Sheet1").Range("R1").Value
.Show
ActiveWorkbook.SaveAs filename:=Range("R1") & ".xlsm", FileFormat:=52

End With
 MsgBox "File Saved!"
End Sub

但是当我选择一个位置时,它不会覆盖单元格值,并且会给出运行时错误#1004。

请有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

您有两个可能看到的问题:

  1. 您正在使用FileDialog方法获取文件名,但随后 使用单元格中的任何内容作为您的SaveAs名称,无论 用户刚刚选择的内容。
  2. 您可能正在根据单元格中已有的内容对文件名进行两次追加。

以下是对您的代码的建议修正:将"R1"的单元格内容设置为用户在保存文件之前选择的值:

Public Sub SaveAsA1()

With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = ActiveWorkbook.Sheets("Sheet1").Range("R1").Value
    .Show
    ActiveWorkbook.Sheets("Sheet1").Range("R1").Value = Trim(.SelectedItems(1))
    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Sheets("Sheet1").Range("R1").Value, FileFormat:=52
End With

MsgBox "File Saved!"
End Sub