文件名中包含空格

文件名中包含空格

我需要保存一个名称中带有一些随机空格的文件。

它位于 Excel Vba 中。经过一个小时的网络搜索,我发现的建议都是要么用 %20 替换空格,要么避免在文件名中使用空格。我尝试添加引号或输入 %20,但没有成功。

生成的文件用于导出到旧系统,更改名称或用另一个字符替换空格不是一种选择

而且空格不一定在同一个位置,我想避免为 20 个不同的名称放置一个 Case 语句。

这是给我带来麻烦的一段代码。

Savepath=range("a1").value
NameOfFile=range("a2").value 
FullnameSave=savepath & "\"& NameOfFile & ".xlsm" 

ActiveWorkbook.SaveAs Filename:=FullNameSave, FileFormat:=xlOpenXMLWorkbookMacroEnabled

除 FileName 中的某处有空格外,一切正常。

例如,如果 A2 中的值为标准价格文件保存良好,如果它是标准价格我收到错误(SaveAs 方法上的错误 1004)。同样,如果我按如下方式对名称进行硬编码,它就可以正常工作。

FullnameSave=savepath & "\" & "standard price" & ".xlsm" 

我尝试在文件名周围添加 2、3、4 甚至 5 个引号,但它始终无法返回正确的格式(类似于H:\Pip_Import\ImportTests2016-10\“标准价格”

答案1

如果您要保存到某个本地文件夹,则应该没有问题。我采用了您的代码:

Sub SaveMePlease()
    savepath = Range("a1").Value
    Filename = Range("a2").Value
    FullNameSave = savepath & "\" & Filename & ".xlsm"
    ActiveWorkbook.SaveAs Filename:=FullNameSave, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

工作表中的内容如下:

在此处输入图片描述

请注意文件名中的空格。您的代码运行时没有错误,并生成:

在此处输入图片描述

我尚未尝试保存到网络位置。

答案2

最终发现与文件名中的空格无关。重写代码以适应 SU 的格式,并看到它可以在别人的计算机上运行,​​这让我以不同的眼光重新审视原始代码。

反斜杠后有一个空格“ \ ”

FullnameSave=savepath & "\ " & NameOfFile & ".xlsm" 

让我感到困惑的是,如果文件名不包含空格,则会自动忽略/更正这个拼写错误,但如果有空格,则会引发错误。

因此解决方案只是从头重写有问题的代码部分并查找拼写错误。

我不确定这种解决方案是否适合 SU,但它可以解决这个特定问题......

相关内容