Excel 保存文件时忽略斜杠

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

我有一个报告,它会选择运行的报告的帐号和名称,并将其保存在报告位置

有些帐户的名称中有经典的交易,保存的文件中是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 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编写代码是免费的:向项目中添加更多的函数不会伤害任何人,代码也不会变得不清晰,但这个答案比您选择的答案更完整。使用此函数,您可以避免文件名出现任何问题,而只需简单地替换/即可。一旦他们决定添加非常常见的字符,如:、或?、或只是添加到他们的帐户名中,您的代码就会失败。谢谢。我确实注意到答案更完整,但我不想让我的团队成员感到困惑,再加上我们要使用的系统只能有/作为一个特殊的角色,这个项目将是好的。不过,我会把代码放在手边,因为我有更多的脚本需要这个,即不需要帐户名