【问题标题】:Saving a xlsm file with the name of specific cell through vba macro通过vba宏保存具有特定单元格名称的xlsm文件
【发布时间】:2019-03-05 13:27:19
【问题描述】:

我正在尝试制作一个按钮,以使用其自己工作表中的特定单元格的名称保存我的工作簿。

我从中获得名称的单元格每周都会更改其值。 我得到了错误:

Run-time error '1004':
Method 'SaveAs' of object'_Workbook' failed

代码如下:

Private Sub Save_file_Click()
Dim path As String
Dim filename1 As String
Dim ws As Worksheet

Set ws = ActiveWorkbook.Sheets("Fejlregistrering")

path = "C:\Users\JOHLA\Desktop\Yield ark\"
filename1 = ws.Range("D5").Text
ActiveWorkbook.SaveAs path & filename1 & ".xlsm", FileFormat =  xlOpenXMLWorkbookMacroEnabled


End Sub

//约翰

【问题讨论】:

  • 请将您的错误作为文本插入,而不是图片。
  • 如果您在SaveAs 行之前添加Debug.Print filename1,那么它输出的值是否正确? (另外,作为顺序的前 2 个参数,无需命名)
  • 看看我如何在这段代码中构建文件名...stackoverflow.com/q/40690592/4961700 直接从要保存的工作表中获取一个数字。
  • debug.print 文件名1 有帮助!不幸的是,我的牢房有一个禁止标志:-(

标签: excel vba


【解决方案1】:

改变

ActiveWorkbook.SaveAs path & filename1 & ".xlsm", FileFormat = xlOpenXMLWorkbookMacroEnabled

ActiveWorkbook.SaveAs Filename:=(path & filename1 & ".xlsm"), FileFormat:=xlOpenXMLWorkbookMacroEnabled

【讨论】:

  • 现在我得到这个错误:运行时错误'1004':无法访问文件。尝试以下方法之一。 1. 确保指定的文件夹存在。 2. 确保包含该文件的文件夹不是只读文件夹。 3. 确保文件/路径不包含超过 218 个符号。 4. 确保文件名不包含以下任何字符: ? []:|或 *
  • 你检查了所有这些?大胆猜测,您的文件名来自的字段包含以下内容之一: ? []:|或 *
  • 当前文件和新文件保存在同一个地方:-/
  • 什么意思?在您的 SaveAs 语句之前添加 { Debug.Print (path & filename1 & ".xlsm") }(不带括号)并将结果发布到此处。
【解决方案2】:

下面试试

ActiveWorkbook.SaveAs Filename:=path & filename1, FileFormat:=xlOpenXMLWorkbookMacroEnabled

【讨论】:

  • 我遇到了和我尝试@Lucky mensioned 版本时一样的错误。
  • @JohanLarsen,请不要添加 Activeworkbook,而是添加 workbooks("workbookname.xls").Sheets("Fejlregistrering")
  • 由于我的工作簿每周都会更改名称,因此 activeworkbook 可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
相关资源
最近更新 更多