【发布时间】:2016-11-02 00:00:37
【问题描述】:
我是一个 VBA 新手,试图根据范围值保存文件名。每次用户窗体更新信息时,单元格中的信息都会更改。运行宏时,我不断收到运行时错误“1004”。这是我正在使用的代码:
ActiveWorkbook.SaveAs FileName:="C:\Users\ME\Desktop\TEST" & Sheets("Fail").Range("B8").Value & Sheets("Fail").Range("C8").Value & Sheets("Fail").Range("B10").Value & Sheets("Fail").Range("C10").Value & ".xlsx"
我感觉我的代码格式不正确。任何建议将不胜感激!
编辑:添加更多信息:我正在从另一个工作簿中提取工作表并创建一个临时文件。我将临时文件设为活动工作簿,以便将其保存到不同的
Worksheets("Fail").Visible = True
Worksheets("Fail Screenshot").Visible = True
tempFile = Environ("Temp") & "\Failed.xlsx"
Set wb = ThisWorkbook
wb.Save
wb.Sheets(Array("Fail", "Fail Screenshot")).Copy
Set tempWB = ActiveWorkbook
'TEST is the folder name on my desktop.
ActiveWorkbook.SaveAs FileName:="C:\Users\ME\Desktop\TEST" & Sheets("Fail").Range("B8").Value & Sheets("Fail").Range("C8").Value & Sheets("Fail").Range("B10").Value & Sheets("Fail").Range("C10").Value & ".xlsx"
【问题讨论】:
-
串联是否产生有效路径?文件夹存在吗?你在 Windows 上,对吧?
-
您引用的单元格中有哪些值?文件名中是否有任何无效字符?您是要保存到名为 TEST 的文件夹中,还是使用以 TEST... 开头的文件名直接保存到桌面?
-
尝试创建一个字符串并查看它,以便了解文件名是什么: Dim fn As String fn = "C:\Users\ME\Desktop\TEST" & Sheets("Fail" ).Range("B8").Value & Sheets("Fail").Range("C8").Value & Sheets("Fail").Range("B10").Value & Sheets("Fail")。 Range("C10").Value & ".xlsx" MsgBox fn
-
Chris - 我直接从文件夹中复制了路径。我正在使用 Windows。 Werrf - 单元格值都是文本。我正在尝试将其保存到名为“TEST”的文件夹中。
-
@Will BeDeleted - 我将 fn = 设置为我的规范,并且我有 ActiveWorkBook.SaveAs fn,但我仍然遇到同样的错误。