Excel 保存文件时忽略斜杠
我有一个报告,它会选择运行的报告的帐号和名称,并将其保存在报告位置 有些帐户的名称中有经典的交易,保存的文件中是T/A,Microsoft无法保存Excel 保存文件时忽略斜杠,excel,vba,Excel,Vba,我有一个报告,它会选择运行的报告的帐号和名称,并将其保存在报告位置 有些帐户的名称中有经典的交易,保存的文件中是T/A,Microsoft无法保存 Dim AccCode As Variant, AccName As Variant, MyFileName As Variant, MyfilePath As Variant Dim ws As Worksheet MyfilePath = "N:\Solutions\Sales Report" Set ws = Worksheets("PAGE
Dim AccCode As Variant, AccName As Variant, MyFileName As Variant, MyfilePath As Variant
Dim ws As Worksheet
MyfilePath = "N:\Solutions\Sales Report"
Set ws = Worksheets("PAGE 1-ACCOUNT&CONTACTS")
AccCode = ws.Cells(5, 2).Value
AccName = ws.Cells(6, 2).Value
MyFileName = MyfilePath & "\" & Trim(AccCode) & "_" & Trim(AccName) & ".xlsx"
'
ChDir _
MyfilePath
ActiveWorkbook.SaveAs FileName:= _
MyFileName _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Save
是否有人知道在使用上述方法保存时忽略/替换文件名中的任何字符的方法?以下函数使用下划线替换文件名中的无效字符:
Public Function CreateValidFilename(ByVal name As String) As String
Const InvalidChars As String = "/:*?""'<>|"
Dim i As Integer
For i = 1 To Len(InvalidChars)
Dim chr As String
chr = Mid(InvalidChars, i, 1)
name = Replace(name, chr, "_")
Next i
CreateValidFilename = name
End Function
以下函数用下划线替换文件名中的无效字符:
Public Function CreateValidFilename(ByVal name As String) As String
Const InvalidChars As String = "/:*?""'<>|"
Dim i As Integer
For i = 1 To Len(InvalidChars)
Dim chr As String
chr = Mid(InvalidChars, i, 1)
name = Replace(name, chr, "_")
Next i
CreateValidFilename = name
End Function
只要简单一点就可以了
AccName = ws.Cells(6, 2).Value
AccName = Replace(AccName, "/", "-")
只要简单一点就可以了
AccName = ws.Cells(6, 2).Value
AccName = Replace(AccName, "/", "-")
你试过这个功能吗?我没想到。如果你想要一些免费的rep,你可以在当前的AccName下添加AccName=ReplaceAccName,/,-这就是我的脚本现在的样子你试过这个函数了吗?我没想到。如果你想要一些免费的代表,你可以添加AccName=ReplaceAccName,/,-在当前的AccName下-这就是我的脚本现在的样子谢谢-一个完美的答案。我希望尽可能少地改变我的员工的脚本-因此,如果这是最好的答案,我会给出一个答案go@Badja编写代码是免费的:向项目中添加更多的函数不会伤害任何人,代码也不会变得不清晰,但这个答案比您选择的答案更完整。使用此函数,您可以避免文件名出现任何问题,而只需简单地替换/即可。一旦他们决定添加非常常见的字符,如:、或?、或只是添加到他们的帐户名中,您的代码就会失败。谢谢。我确实注意到答案更完整,但我不想让我的团队成员感到困惑,再加上我们要使用的系统只能有/作为一个特殊的角色,这个项目将是好的。不过,我会把代码放在手边,因为我有很多脚本需要这个,即不需要帐户名谢谢-一个完美的答案。我希望尽可能少地改变我的员工的脚本-因此,如果这是最好的答案,我会给出一个答案go@Badja编写代码是免费的:向项目中添加更多的函数不会伤害任何人,代码也不会变得不清晰,但这个答案比您选择的答案更完整。使用此函数,您可以避免文件名出现任何问题,而只需简单地替换/即可。一旦他们决定添加非常常见的字符,如:、或?、或只是添加到他们的帐户名中,您的代码就会失败。谢谢。我确实注意到答案更完整,但我不想让我的团队成员感到困惑,再加上我们要使用的系统只能有/作为一个特殊的角色,这个项目将是好的。不过,我会把代码放在手边,因为我有更多的脚本需要这个,即不需要帐户名