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

问题描述 投票:0回答:1

这是我的代码

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。

请有人帮忙吗?

excel vba
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.